I have a class named House and it has property of type Room
.
class House {
private Room room;
// getters & setters
}
Room
class has a property roomCapacity
:
class Room {
private int roomCapacity;
// getters & setters
}
I want to sort House HashMap on the base of Room class property named roomCapacity.
Comparator<House> sortByRoomCapacity =
Comparator.nullsFirst(Comparator.comparing(House::getRoom,
Comparator.nullsFirst(Comparator.naturalOrder())));
But for now I am inaccessible to get this property(getRoomCapacity) of Room class House::getRoom
You're almost there.
One more nested comparing
method should do the trick:
Comparator<House> sortByRoomCapacity =
nullsFirst(comparing(House::getRoom,
comparing(Room::getRoomCapacity,
nullsFirst(naturalOrder()))));