我有兩個User
List
對象排序的HashSet對象,合併:升序
objectList1.addAll(objectList2);
爲了避免轉換爲HashSet
重複:
Set<User> users = newHashSet(objectList);
我怎麼能基於按升序的用戶排序名字?
我試着用TreeSet
,而不是HashSet
,但拋出Exception
。
如何在不使User
類實現 Comparable<User>
的情況下實現結果?
我有兩個User
List
對象排序的HashSet對象,合併:升序
objectList1.addAll(objectList2);
爲了避免轉換爲HashSet
重複:
Set<User> users = newHashSet(objectList);
我怎麼能基於按升序的用戶排序名字?
我試着用TreeSet
,而不是HashSet
,但拋出Exception
。
如何在不使User
類實現 Comparable<User>
的情況下實現結果?
實現可比較接口。 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html
或使用比較器。 https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
任何一個都應該工作。問題在於,如果Set不知道如何比較兩個元素,它無法知道如何排序。
說你想用比較器對你的用戶,你可以定義一個這樣的:
Comparator<User> comparator = new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
return u1.name.compareTo(u2.name);
}
};
Java 7 –
這些接口幾乎沒有改變,它仍然以相同的方式工作! –
是否有任何簡單的方法將Hashset移動到Treeset –
Collections.sort(收藏,比較) –
您能詳細解釋一下,我怎麼會通過結果集比較 –
「我嘗試使用Treeset,而不是Hashset,但拋出異常」 - 那麼你可能沒有指定一個適當的比較。 –