Заполнение многомерных структур в Java
Массив списков
Пустой массив списков заполняют двумя циклами.
Внешний проходит ячейки массива, внутренний
дописывает числа в список через add:
import java.util.ArrayList;
ArrayList<Integer>[] rows = new ArrayList[2];
for (int i = 0; i < 2; i++) {
rows[i] = new ArrayList<>();
for (int j = 1; j <= 3; j++) {
rows[i].add(j);
}
}
System.out.println(rows[1].get(2)); // выведет 3
Карта списков
Списки в карте собирают так же. Вместо индекса массива берут ключ:
import java.util.ArrayList;
import java.util.HashMap;
HashMap<String, ArrayList<Integer>> map = new HashMap<>();
String[] keys = {"a", "b"};
for (int i = 0; i < 2; i++) {
ArrayList<Integer> row = new ArrayList<>();
for (int j = 1; j <= 2; j++) {
row.add(j);
}
map.put(keys[i], row);
}
System.out.println(map.get("b").get(1)); // выведет 2
Список карт
Каждый элемент списка - отдельная карта.
Ее собирают на шаге цикла и кладут в список
через add:
import java.util.ArrayList;
import java.util.HashMap;
ArrayList<HashMap<String, Integer>> table = new ArrayList<>();
for (int i = 1; i <= 2; i++) {
HashMap<String, Integer> row = new HashMap<>();
row.put("id", i);
table.add(row);
}
System.out.println(table.get(1).get("id")); // выведет 2
Практические задачи
Заполните массив из двух списков числами
1, 2 и 3 в каждом.
Выведите последний элемент второго списка.
Заполните карту списков. По ключам
"a" и "b" лежат числа
4 и 5. Выведите второе
число ключа "b".
Заполните список двумя картами. В каждой
есть ключ "age", числа 27
и 31. Выведите возраст второй
карты.