比较两个对象的字段字段

问题描述 投票:0回答:1

我有一个名为House的类,它具有Room类型的属性。

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

Room类具有属性roomCapacity

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

我想基于名为roomCapacity的Room类属性对House HashMap进行排序。

Comparator<House> sortByRoomCapacity =
      Comparator.nullsFirst(Comparator.comparing(House::getRoom,
                   Comparator.nullsFirst(Comparator.naturalOrder())));

但是目前我无法获得Room类House :: getRoom的此属性(getRoomCapacity)

java sorting java-8 comparator
1个回答
3
投票

您快到了。

另一个嵌套comparing方法应该可以解决问题:

Comparator<House> sortByRoomCapacity =
         nullsFirst(comparing(House::getRoom, 
                              comparing(Room::getRoomCapacity, 
                                        nullsFirst(naturalOrder()))));
© www.soinside.com 2019 - 2024. All rights reserved.