Collection集合
只能存儲(chǔ)引用類型的數(shù)據(jù), 單個(gè)存儲(chǔ)
基本操作: add(), remove(), contains(), size(), iterator()
特點(diǎn): 存儲(chǔ)的元素是有序,可重復(fù)的
為每個(gè)元素指定一個(gè)索引值
增加的方法, 針對(duì)索引值的操作, listIterator(), subList(), sort(Comparator)
底層是數(shù)組, 訪問(wèn)快, 添加/刪除效率低
初始化容量: 10, 擴(kuò)容: 1.5倍
底層是數(shù)組, 它是線程安全的, ArrayList不是線程安全的
初始化容量: 10, 擴(kuò)容: 2倍
底層是雙向鏈表, 添加/刪除效率高, 訪問(wèn)慢
ArrayList適用于以訪問(wèn)為主, 很少添加/刪除的情況
LinkedList適用于經(jīng)常添加/刪除的情況
特點(diǎn): 數(shù)據(jù)無(wú)序,不可重復(fù)
底層是HashMap, HashSet實(shí)際上就是HashMap鍵的集合
底層是TreeMap, TreeSet實(shí)際上就是TreeMap鍵的集合
TreeSet實(shí)現(xiàn)了SortedSet接口, 可以對(duì)元素自然排序, 要求元素必須是可比較的:
● 在構(gòu)造方法中指定Comparator比較器對(duì)象
● 如果沒(méi)有Comparator比較器, 集合元素的類必須實(shí)現(xiàn)Comparable接口
如果不需要對(duì)Set集合進(jìn)行排序就選擇HashSet
如果需要對(duì)Set集合的元素進(jìn)行排序就選擇TreeSet
List集合/HashSet集合的contains( e ) / remove( e )等方法需要調(diào)用對(duì)象的equals()方法, 這些集合中的元素的類需要重寫equals()方法
TreeSet集合中contains( e )/ remove( e) 等方法判斷是否同一個(gè)對(duì)象是根據(jù)Comparator/Comparable的比較結(jié)果是否為0來(lái)判斷的, 如果比較結(jié)果為0表示同一個(gè)元素