在Java中將Lista 轉換為a 的最簡單方法是什么Set?
3 回答

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
我同意sepp2k,但還有其他一些細節可能很重要:
new HashSet<Foo>(myList);
將為您提供沒有重復的未排序集合。在這種情況下,將在對象上使用.equals()方法來標識重復項??梢耘c.hashCode()方法結合使用。(有關平等的更多信息,請點擊此處)
提供排序集的替代方法是:
new TreeSet<Foo>(myList);
如果Foo實現了Comparable,則此方法有效。如果不是,那么您可能要使用比較器:
Set<Foo> lSet = new TreeSet<Foo>(someComparator);
lSet.addAll(myList);
為了確保唯一性,這依賴于compareTo()(來自可比較的接口)或compare()(來自比較器)。因此,如果您只關心唯一性,請使用HashSet。如果要進行排序,請考慮使用TreeSet。(請記?。荷院筮M行優化?。┤绻麜r間效率很重要,而空間效率很重要,請使用HashSet,請查看TreeSet。請注意,可以通過Trove(和其他位置)使用Set和Map的更有效實現。

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
如果您使用Guava庫:
Set<Foo> set = Sets.newHashSet(list);
或更好:
Set<Foo> set = ImmutableSet.copyOf(list);
添加回答
舉報
0/150
提交
取消