@Dmitry07

Как поместить пары значений в Map?

Доброго времени суток.

В рамках сохранения данных возник следующий вопрос: если имеются пары значений в формате List<Object[]> с повторяющимся первым элементом

101 - 201

101 - 202

101 - 203

102 - 204

102 - 205

102 - 206

103 - 207

103 - 208

103 - 209

Как, скажем, технически правильно поместить данное содержимое в рамках Map<Integer, List<Integer>>, сгрупировав в список вторые элементы по схожему первому?

Благодарю.
  • Вопрос задан
  • 441 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Cr2ed
Для каждой пары нужен такой код:
Map<Integer, List<Integer>> = new HashMap();

if (!map.contains(key)) {
    map.put(key, new ArrayList<Integer>())
}
map.get(key).put(value)
Ответ написан
@jumb0jet
Map<Integer, List<Integer>> groupingBy = list.stream()
                .collect(
                        groupingBy(
                                pair-> (Integer) pair[0],
                                mapping(
                                        pair-> (Integer) pair[1],
                                        toList()
                                )
                        )
                );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы