list與Set、Map區別及適用場景

FrankYou發表於2018-09-03

 

1、List,Set都是繼承自Collection介面,Map則不是

2、List特點:

元素有放入順序,元素可重複 ,Set特點:元素無放入順序,元素不可重複,重複元素會覆蓋掉,(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的,加入Set 的Object必須定義equals()方法 ,另外list支援for迴圈,也就是通過下標來遍歷,也可以用迭代器,但是set只能用迭代,因為他無序,無法用下標來取得想要的值。)

3.Set和List對比:

Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。
List:和陣列類似,List可以動態增長,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。

4.Map適合儲存鍵值對的資料

5.執行緒安全集合類與非執行緒安全集合類
LinkedList、ArrayList、HashSet、HashMap、StringBuilder是非執行緒安全的
Vector、HashTable、StringBuffer是執行緒安全的。

相關文章