Перемещение содержимого из HashMap A в HashMap B с использованием данных из значения A, чтобы стать новым ключом - PullRequest
0 голосов
/ 20 мая 2018

Возможно ли заполнить Hashmap KV-парами другого Hashmap, используя данные в карте-источнике.Например, давайте рассмотрим, что у нас есть карта, которая выглядит следующим образом:

Map<Position,Place> positionMap = new HashMap<Position,Place>();

Теперь рассмотрим класс Place, содержащий как объект String category, так и Position.

Можно ли перенести объекты place из positionMap в categoryMap с помощью цикла и с помощью строки category, найденной в Place-object, в качестве ключа новой HashMap, значения которой будут установленымест?Итак, один набор, содержащий все места категории A, и один, содержащий места категории B.

Map<String,Set<Place>> categoryMap = new HashMap<String,Set<Place>>();

1 Ответ

0 голосов
/ 20 мая 2018

Вам нужна операция groupingBy:

Map<String,Set<Place>> categoryMap = positionMap().values().stream()
      .collect(Collectors.groupingBy(Place::getCategory, Collectors.toSet()));

Однако вы хотите собрать до Set<Place>, поэтому вам нужно реализовать equals() и hashcode() для вашего Place класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...