Java 8 | Тип Map.Entry не определяет getValue (LinkedHashMap ) - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть класс с именем Street, и у него есть свойство типа House, и у него есть свойство типа Room.

class Street{
   private House house;
   // getters & setters
}

House У класса есть свойство Room:

class House {
   private Room room;
   // getters & setters
}

Room класс имеет свойство roomCapacity:

class Room {
   private double roomCapacity;
   // getters & setters
}

Я хочу отсортировать Street HashMap из House HashMap на основе Room свойства класса с именем roomCapacity.

Значит, каждая улица должна была отсортировать дом по вместимости комнаты.

Map<Street, Map<Long, House>> streetMapFromDB = map;
Map<Street, Map<Long, House>> streetMap =null;
Comparator<Room> orderByRoomCapacity = Comparator.nullsLast(Comparator.comparing(Room::getRoomCapacity, Comparator.nullsLast(Comparator.reverseOrder())));
streetMap = Collections.synchronizedMap(streetMapFromDB.values().stream().map(
                m -> m.entrySet().stream().sorted(Map.Entry.<String, House> comparingByValue(orderByRoomCapacity ))
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new)))
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));

Но я получаю ошибку: type Map.Entry does not define getValue(LinkedHashMap<String,House>)

Формат данных:

//streetMap={Street={House={RoomCapacity}},{House={RoomCapacity}}}
streetMapFromDB={1={11={4}),2={12={7}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...