Я хотел бы построить Карту, используя пару Stream & Lambda.
Я пробовал много способов, но застрял.Вот классический Java-код, который делает это, используя как Stream / Lambda, так и классические циклы.
Map<Entity, List<Funder>> initMap = new HashMap<>();
List<Entity> entities = pprsToBeApproved.stream()
.map(fr -> fr.getBuyerIdentification().getBuyer().getEntity())
.distinct()
.collect(Collectors.toList());
for(Entity entity : entities) {
List<Funder> funders = pprsToBeApproved.stream()
.filter(fr -> fr.getBuyerIdentification().getBuyer().getEntity().equals(entity))
.map(fr -> fr.getDocuments().get(0).getFunder())
.distinct()
.collect(Collectors.toList());
initMap.put(entity, funders);
}
Как видите, я знаю только, как собирать в списке, но я просто не могу сделать то же самоес картой.Вот почему я должен снова передать свой список, чтобы создать второй список, чтобы, наконец, собрать все вместе на карте.Я также попытался использовать оператор collect.groupingBy, так как он также должен создать карту, но мне это не удалось.