Операции со словарями и списками

303
25 сентября 2017, 01:45

Например, у меня есть два списка:

['a','b']
['1','2','3','4','5','6']  

И у меня есть словарь:

Map<String, ArrayList> dict = new HashMap<String, ArrayList>();

Как мне записать в словарь элементы так, чтобы элемент первого списка был ключом, а три элемента второго списка были переменными этого ключа? То есть должно получиться вот что:

{a=['1','2','3'], b=['4','5','6']}

Answer 1

Попробуйте, например, так:

List<String> firstList = Arrays.asList("a", "b");
List<String> secondList = Arrays.asList("1", "2", "3", "4", "5", "6");
Map<String, List<String>> dict = new HashMap<>();
for (int i = 0; i < firstList.size(); i++) {
    List<String> values = secondList.subList(i*3, (i+1)*3);
    dict.put(firstList.get(i), values);
}
System.out.println(dict); //{a=[1, 2, 3], b=[4, 5, 6]}
Answer 2

Или с guava (все равно она всегда есть в CLASSPATH)

List<String> keys = Lists.newArrayList("a", "b");
List<String> vals = Lists.newArrayList("1", "2", "3", "4", "5", "6");
List<List<String>> partitionedVals = Lists.partition(vals, 3);
Map<String, List<String>> map = new HashMap<>();
for (int i = 0; i < keys.size(); i++) {
    map.put(keys.get(i), partitionedVals.get(i));
}
System.out.println(map);
READ ALSO
Обьясните как так? Файл то подключается, то нет (путь указан правильно!)

Обьясните как так? Файл то подключается, то нет (путь указан правильно!)

Осваиваю технологию JSPТак вот, создаю jsp страницу и подключаю к ней стили css

204
&ldquo;Методы подставки&rdquo;

“Методы подставки”

На скрине приведен раздел из книги Блинова "Java промышленное программирование"

178
war файл, установка приложения на сервер

war файл, установка приложения на сервер

Доброго времени суток! Создал проект в "идее" и пытаюсь залить его на сервер сейчас, согласно этой инструкции: инструкция

293
Сортировка списка по другому списку

Сортировка списка по другому списку

Есть LinkedList<ClassXXX>, ClassXXX содержит множество полей, одно из которых Integer Id

233