Set和List 的關係與區別

2021-07-05 15:04:38 字數 827 閱讀 9970

兩個介面都是繼承自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 getfir...

Set和List 的關係與區別

兩個介面都是繼承自collection.list inteface 次序是list 的最重要特點,它確保維護元素特定的順序.arraylist 允許對元素快速隨機訪問.linkedlist 對順序訪問進行優化,向 list 中間插入與移除的開銷並不大,具有addfrist addlast getfi...

List與Set的關係和區別

list和set是用來存放集合的介面,並且二者都繼承自介面collection。1 在list中的元素存放是有序的,可以存放重複的元素,檢索效率較高,插入刪除效率較低。arraylist linkedlist vector是list的兩個實現類。arraylist 底層的實現就是乙個可變陣列非同步實...