1. 程式人生 > >list與Set、Map區別及適用場景

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

適合 線程 可重復 set、map equals 註意 位置 tor span

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是線程安全的。

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