Создание списка строк, где каждая строка является ключом, к списку кортежей (как значение) в java

Как я могу создать список строк, где каждая строка указывает на список кортежей; Другими словами, каждая строка является ключом к списку кортежей (как значение)?

Каждый кортеж должен иметь вид:

List<String> pref, where each element of the list pref (say pref_i):
pref1 --> {(T1:10),(T2:13), T3:3),...}
pref2 --> {(T1:7), (T4:3), (T5:1),...}
pref3 --> ...

person MAZDAK    schedule 23.04.2013    source источник


Ответы (4)


Мне кажется, вам нужен Map, в зависимости от типа вашего кортежа (предполагая здесь строку):

Map<String, List<String>> prefs = new HashMap<String, List<String>>;

У вас могут быть кортежи любого типа, для удобства я использовал String.

Если ваши кортежи лучше представлены через Set или Map, измените его соответствующим образом.

person pcalcao    schedule 23.04.2013

Мультикарта в помощь!

В java нет такой вещи, как кортежи, если только вы их не имитируете. Мультикарта похожа на карту, где ключ — это строка, а значение — массив элементов.

MultiMap

person Eugene    schedule 23.04.2013

Может быть, вы могли бы использовать HashMap HashMap? Первый HashMap для использования ваших строковых ключей, а второй — для ваших кортежей.

HashMap<String, HashMap<String, String>> myHashMap = new HashMap<String, HashMap<String, String>>();

Надеюсь это поможет ! Пока !

person Antoine    schedule 23.04.2013

Вы также можете использовать List.

import java.util.ArrayList;
    import java.util.List;
    public class TestArrayList {
        public static void main(String[] args) {

            List<String> tempList=new ArrayList<String>();
            List<String> temp1=new ArrayList<String>();
            temp1.add(0, "a");
            temp1.add(1, "b");
            List<String> temp2=new ArrayList<String>();
            temp2.add(0, "c");
            temp2.add(1, "d");
            List<String> temp3=new ArrayList<String>();
            temp3.add(0, "e");
            temp3.add(1, "f");
            tempList.addAll(0, temp1);
            tempList.addAll(1, temp2);
            tempList.addAll(1, temp3);

            for(int i=0;i<tempList.size();i++){
                System.out.println(">>"+tempList.get(i));
            }
        }
    }
person vijayk    schedule 23.04.2013