Цикл по многомерным картам в Java
Карту карт обходят двумя циклами. Внешний дает очередную внутреннюю карту, внутренний - ее пары. Числа из пар складывают, начиная с нуля:
import java.util.HashMap;
import java.util.Map;
HashMap<String, HashMap<String, Integer>> map = new HashMap<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("x", 1);
row.put("y", 2);
map.put("a", row);
row = new HashMap<>();
row.put("x", 3);
row.put("y", 4);
map.put("b", row);
int sum = 0;
for (Map.Entry<String, HashMap<String, Integer>> entry : map.entrySet()) {
for (Map.Entry<String, Integer> inner : entry.getValue().entrySet()) {
System.out.println(inner.getValue());
sum += inner.getValue();
}
}
System.out.println(sum); // выведет 10
Дана карта карт:
import java.util.HashMap;
HashMap<String, HashMap<String, Integer>> map = new HashMap<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("x", 10);
row.put("y", 20);
map.put("a", row);
row = new HashMap<>();
row.put("x", 30);
row.put("y", 40);
map.put("b", row);
Найдите сумму всех чисел и выведите ее в консоль.
Дана карта из трех уровней:
import java.util.HashMap;
HashMap<String, HashMap<String, HashMap<String, Integer>>> map = new HashMap<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("age", 20);
row.put("year", 2000);
HashMap<String, HashMap<String, Integer>> user = new HashMap<>();
user.put("u", row);
map.put("g", user);
Найдите сумму всех чисел и выведите ее в консоль.