0
我正在尋找一種很好的方法,可以按多個類屬性對對象列表進行分組。 Google guava library提供了一個功能,可以通過一個屬性進行分組。我還沒有找到一個實用程序,但它提供了我正在尋找的東西。按多個屬性對對象列表進行分組
見下文。我已經將分組屬性封裝到它自己的類Grouping
中。但是,如果存在更好的解決方案,則這不是必需的。
一個包含分組屬性的類。
Class Grouping{
private String key1;
private String key2;
private String key3;
//getters, setters
}
表示需要分組的類型。
Class Groupable{
private Grouping grouping;
private String x;
private String y;
private String z;
// getters, setters
}
我需要的是一個包含作爲關鍵的映射,具有唯一鍵集合的Groupable對象。並將Groupable對象列表作爲相應的分組項目。
Map<Grouping, List<Groupable>> groupings;
任何和所有的建議歡迎!
您鏈接的方法完全符合您的要求:您傳遞將Groupable轉換爲分組的函數,它執行其他所有操作。當然,分組需要正確實現hashCode()和equals()。哪裏有問題?請注意,它使用簡單的Map很容易。 – 2015-01-26 22:00:18
好的。我想我需要實現我自己的equals()。這就是我所缺少的,因爲默認實現是尋找對象相等,而我想在對象屬性中建立平等。謝謝。 – Angad 2015-01-26 22:01:21
不要忘記實現一個與你的equals()一致的'hashCode()'。 – 2015-01-26 22:02:42