繁体   English   中英

按字段的字段比较两个对象

[英]Compare two objects by their field's field

我有一个名为 House 的 class ,它的属性为Room

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

Room class 有一个属性roomCapacity :

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

我想在名为 roomCapacity 的 Room class 属性的基础上对 House HashMap 进行排序。

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

但是现在我无法获得房间 class House::getRoom的这个属性(getRoomCapacity)

您快到了。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM