Java中Set與List的關係與區別介紹
Jan 22, 2017 pm 03:25 PM兩個介面都是繼承自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中文網!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復
