兩個介面都是繼承自Collection.
List (inteface)
次序是List 的最重要特點,它確保維護元素特定的順序.
——ArrayList 允許對元素快速隨機存取.Link
對順序存取進行最佳化,向List 中間插入與移除的開銷並不大,具有addFrist(),addLast(),getFirst,getLast,removeFirst和removeLast().這些方法使得LinkedList可當作堆疊/佇列/雙向佇列.
Set (inteface)
存入Set 的每個元素必須唯一,不保證維護元素的順序.加入Set 的Object必須定義equals()方法
--HashSet 為快速查找而設計的Set ,存入HashSet物件必須定義hashCode().
-TreeSet 保護順序的Set ,使用它可以從Set 擷取有序序列.
-LinkedHashSet 具有HashSet的查詢速度,且內部使用鍊錶維護元素的次序.
它們之間的儲存方式不一樣:
TreeSet採用紅黑樹的樹據結構排序元素.
HashSet採用雜湊函數,這是專門為快速查詢而設計的.
LinkedHashSet內部使用雜湊函數以加快查詢速度,同時使用鍊錶維護元素的次序.
使用HashSet/TreeSet時,必須為類別定義equals();而HashCode()是針對HashSet,作為一種程式風格,當覆蓋equals()的時候,就應該同時覆寫hashCode().
更多Java中Set與List的關係與區別介紹相關文章請關注PHP中文網!