首先放一張部分基礎集合的繼承關係圖(Set和List)
外框爲虛線的表示接口,邊框爲實線的表示類;箭頭爲虛線的表示實現了接口,箭頭爲實線的表示繼承了類。
ArrayList:非線程安全,隨機訪問效率高,非尾部插入和刪除效率較低,如果在中間插入元素,之後所有元素都要後移。ArrayList擴容通過原始容量右移一位運算實現0.5倍擴容。
LinkedList:使用雙向鏈表數據結構實現,可以當隊列,也可以實現棧。
Vector:Java早期實現線程安全的集合,如果不需要線程安全,不建議使用,開銷較大。
HashSet:HashMap的實例,無序集合,默認容量16,每次擴充0.75倍。
TreeSet:實現了自動排序。
LinkedHashMap:按照元素的hashcode決定元素的存儲位置,但同時又使用鏈表來維護元素的次序,這樣使得它看起來像是按照插入順序保存的。
toArray():集合-->數組;
Arrays.asList():數組-->集合。
集合排序
1.實現Comparable接口,實現接口下的(int)compareTo(T o)方法,然後調用Array.sort()方法就可以排序;
2.java.util包下的Comparator接口。