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