Java中Set與List的關系與差別引見。本站提示廣大學習愛好者:(Java中Set與List的關系與差別引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中Set與List的關系與差別引見正文
兩個接口都是繼續自Collection.
List (inteface)
順序是List 的最主要特色,它確保保護元素特定的次序.
--ArrayList 許可對元素疾速隨機拜訪.
--LinkedList 對次序拜訪停止優化,向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().