兩個介面都是繼承自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().
Set和List 的關係與區別
兩個介面都是繼承自collection.list inteface 次序是list 的最重要特點,它確保維護元素特定的順序.arraylist 允許對元素快速隨機訪問.linkedlist 對順序訪問進行優化,向 list 中間插入與移除的開銷並不大,具有addfrist addlast getfi...
Set和List 的關係與區別
兩個介面都是繼承自collection.list inteface 次序是list 的最重要特點,它確保維護元素特定的順序.arraylist 允許對元素快速隨機訪問.linkedlist 對順序訪問進行優化,向 list 中間插入與移除的開銷並不大,具有addfrist addlast getfi...
List與Set的關係和區別
list和set是用來存放集合的介面,並且二者都繼承自介面collection。1 在list中的元素存放是有序的,可以存放重複的元素,檢索效率較高,插入刪除效率較低。arraylist linkedlist vector是list的兩個實現類。arraylist 底層的實現就是乙個可變陣列非同步實...