簡體   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