Java 8 stream groupingBy

278
11 января 2018, 22:02

Подскажите как преобразовать:

Map<String, List<Pet>> pets = petList
            .stream()
            .collect(Collectors.groupingBy(Pet::getType));

в

Map<String, PetsHouse>

при помощи stream? Или я сильно заморачиваюсь и решить без использования стримов?

PetHouse - это просто некая обертка над листом

List<Pet> petList;
PetHouse house = new PetHouse(petList);
Answer 1

Всё решаемо:

Map<String, List<Pet>> pets = petList
        .stream()
        .collect(Collectors.groupingBy(
            Pet::getType,
            Collectors.collectingAndThen(Collectors.toList(), PetHouse::new)
        ));
Answer 2
Map<String, PetHouse> m = pets.entrySet().stream()
            .collect(Collectors.toMap(Entry::getKey, e -> new PetHouse(e.getValue())));
READ ALSO
Сокеты. Прием и отдача данных. Андроид

Сокеты. Прием и отдача данных. Андроид

Есть клиент(андроид прил) и Сервер(Ява прога)

224
CRUD операции в Realm + RXJava

CRUD операции в Realm + RXJava

Дело в том что я до этого удалял и обновлял записи в Realm таким образом:

235
Размещение виджета ниже ListView

Размещение виджета ниже ListView

Как разместить TextView ниже ListView ?

213
Как найти цифру 0 в в заданном числе JAVA

Как найти цифру 0 в в заданном числе JAVA

Нужно найти в заданном с клавиатуры шестизначном числе, цифры 0

208