亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中將列表轉換為集合的最簡單方法

在Java中將列表轉換為集合的最簡單方法

繁花不似錦 2019-10-14 14:00:40
在Java中將Lista 轉換為a 的最簡單方法是什么Set?
查看完整描述

3 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

Set<Foo> foo = new HashSet<Foo>(myList);


查看完整回答
反對 回復 2019-10-14
?
牧羊人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的更有效實現。


查看完整回答
反對 回復 2019-10-14
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

如果您使用Guava庫:


Set<Foo> set = Sets.newHashSet(list);

或更好:


Set<Foo> set = ImmutableSet.copyOf(list);


查看完整回答
反對 回復 2019-10-14
  • 3 回答
  • 0 關注
  • 659 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號