Цикл по многомерным комбинациям в 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))
};
int sum = 0;
for (ArrayList<Integer> row : rows) {
for (int num : row) {
System.out.println(num);
sum += num;
}
}
System.out.println(sum); // выведет 15
Карта списков
Внешний цикл дает список по очередному ключу, внутренний проходит его элементы:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
HashMap<String, ArrayList<Integer>> map = new HashMap<>();
map.put("a", new ArrayList<>(Arrays.asList(1, 2)));
map.put("b", new ArrayList<>(Arrays.asList(3, 4)));
int sum = 0;
for (Map.Entry<String, ArrayList<Integer>> entry : map.entrySet()) {
for (int num : entry.getValue()) {
System.out.println(num);
sum += num;
}
}
System.out.println(sum); // выведет 10
Список карт
Внешний цикл выбирает карту по индексу, внутренний складывает значения ее пар:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
ArrayList<HashMap<String, Integer>> table = new ArrayList<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("a", 1);
row.put("b", 2);
table.add(row);
row = new HashMap<>();
row.put("a", 3);
row.put("b", 4);
table.add(row);
int sum = 0;
for (HashMap<String, Integer> item : table) {
for (Map.Entry<String, Integer> entry : item.entrySet()) {
System.out.println(entry.getValue());
sum += entry.getValue();
}
}
System.out.println(sum); // выведет 10
Дан массив списков:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Integer>[] rows = new ArrayList[] {
new ArrayList<>(Arrays.asList(10, 20)),
new ArrayList<>(Arrays.asList(30))
};
Найдите сумму всех чисел и выведите ее в консоль.
Дана карта списков:
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)));
Найдите сумму всех оценок и выведите ее в консоль.
Дан список карт:
import java.util.ArrayList;
import java.util.HashMap;
ArrayList<HashMap<String, Integer>> table = new ArrayList<>();
HashMap<String, Integer> row = new HashMap<>();
row.put("a", 10);
row.put("b", 20);
table.add(row);
row = new HashMap<>();
row.put("a", 30);
row.put("b", 40);
table.add(row);
Найдите сумму всех чисел и выведите ее в консоль.