1. 程式人生 > >List set map特點及執行緒安全與否

List set map特點及執行緒安全與否

感謝:http://blog.csdn.net/u011084603/article/details/49108585

List特點:元素有放入順序,元素可重複 
Map特點:元素按鍵值對儲存,無放入順序 
Set特點:元素無放入順序,元素不可重複(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的) 
List介面有三個實現類:LinkedList,ArrayList,Vector 
LinkedList:底層基於連結串列實現,連結串列記憶體是散亂的,每一個元素儲存本身記憶體地址的同時還儲存下一個元素的地址。連結串列增刪快,查詢慢 
ArrayList和Vector的區別:ArrayList是非執行緒安全的,效率高;Vector是基於執行緒安全的,效率低 
Set介面有兩個實現類:HashSet(底層由HashMap實現),LinkedHashSet 
SortedSet介面有一個實現類:TreeSet(底層由平衡二叉樹實現) 
Query介面有一個實現類:LinkList 
Map介面有三個實現類:HashMap,HashTable,LinkeHashMap 
HashMap非執行緒安全,高效,支援null;HashTable執行緒安全,低效,不支援null 
SortedMap有一個實現類:TreeMap 
其實最主要的是,list是用來處理序列的,而set是用來處理集的。Map是知道的,儲存的是鍵值對 
set 一般無序不重複.map kv 結構 list 有序

HashSet,儲存object的集合,既然是集合,就不允許有重複元素。判斷兩個元素是否相同,是由hashCode與equals方法共同完成的。