List集合概述
- 有序集合(也稱序列)用戶可以精確控制列表的每一個元素的位置插入,用戶可以通過整數索引訪問元素,並搜索列表中的元素
- 與set集合不同,列表通常允許重復的元素
List集合的特點
- 有序:存儲和取出元素順序一致
- 可重復:存儲的元素可以重復
List集合實現類特點
- ArrayList:查詢快,增刪慢的一種數組
- LinkedList:查詢慢,增刪快的一種鏈表
ArrayList擴容機制
- ArrayList數組首先對傳進來的初始化參數initalCapcity(初始容量)進行判斷,參數如果為0,則初始化為一個空數組
- 如果不等於0,則初始化一個容量為10的數組
-
擴容時機:
- 當數組大小大於初始容量的時候,就會進行擴容,擴容為原來的1.5倍
-
擴容方式:
- 會將原數組拷貝到一個新數組里,修改原數組指向新數組,原數組被拋棄,會被GC回收
Set集合:
TreeSet集合特點:
-
- 元素有序,這里的順序不是指存儲和取出的順序,而是按照一定的規則進行排序,具體方法取決於構造方法
- TreeSet(); 根據元素的自然派進行排序
- TreeSet(Comparator comparator); 根據指定得比較器進行排序
- 注:TreeSet要遍歷時候必須在實現類實現Comparable接口,重寫ComparaTo方法
- 元素有序,這里的順序不是指存儲和取出的順序,而是按照一定的規則進行排序,具體方法取決於構造方法