Многомерные комбинации в Java
Массив списков
Массив может хранить списки. У каждой ячейки своя длина. Сначала берут список по индексу массива, затем элемент списка:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Integer>[] rows = new ArrayList[] {
new ArrayList<>(Arrays.asList(1, 2)),
new ArrayList<>(Arrays.asList(3, 4, 5))
};
System.out.println(rows[1].get(2)); // выведет 5
Карта списков
Значением пары карты может быть список. Сначала список получают по ключу, затем элемент по индексу:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
HashMap<String, ArrayList<Integer>> map = new HashMap<>();
map.put("a", new ArrayList<>(Arrays.asList(1, 2, 3)));
map.put("b", new ArrayList<>(Arrays.asList(4, 5, 6)));
System.out.println(map.get("a").get(1)); // выведет 2
Список карт
Список может хранить карты. Сначала выбирают карту по индексу списка, затем значение по ключу:
import java.util.ArrayList;
import java.util.HashMap;
ArrayList<HashMap<String, Integer>> table = new ArrayList<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("id", 1);
row.put("age", 27);
table.add(row);
row = new HashMap<>();
row.put("id", 2);
row.put("age", 31);
table.add(row);
System.out.println(table.get(1).get("age")); // выведет 31
Дан массив списков:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Character>[] rows = new ArrayList[] {
new ArrayList<>(Arrays.asList('x', 'y')),
new ArrayList<>(Arrays.asList('z', 'w', 'v'))
};
Выведите в консоль второй символ первого списка.
Дана карта списков:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
HashMap<String, ArrayList<Integer>> map = new HashMap<>();
map.put("Ann", new ArrayList<>(Arrays.asList(5, 4, 5)));
map.put("Bob", new ArrayList<>(Arrays.asList(3, 5, 4)));
Выведите вторую оценку ученика "Bob".
Дан список карт:
import java.util.ArrayList;
import java.util.HashMap;
ArrayList<HashMap<String, String>> table = new ArrayList<>();
HashMap<String, String> row = new HashMap<>();
row.put("city", "Paris");
row.put("code", "33");
table.add(row);
row = new HashMap<>();
row.put("city", "Rome");
row.put("code", "39");
table.add(row);
Выведите в консоль название города из второй карты.