ArrayList 是基於動態數組實現的 List,繼承 AbstractList,查詢快(O(1))、尾部插入攤還 O(1)、中間插刪 O(n)。
ArrayList():默認初始容量 10(JDK 8+ 延遲至首次 add)。ArrayList(Collection<? extends E> c):包含指定集合元素。ArrayList(int initialCapacity):指定初始容量,避免擴容開銷。| 方法 | 說明 |
|---|---|
add(E e) | 尾部添加 |
add(int index, E e) | 指定位置插入 |
get(int index) | 獲取指定位置元素 |
set(int index, E e) | 替換指定位置元素 |
remove(int index) | 刪除指定位置元素 |
indexOf(Object o) | 首次出現索引,無則 -1 |
size() | 元素數量 |
clear() | 清空 |
List<String> list = new ArrayList<>();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
list.add(1, "jay"); // 索引 1 插入
list.set(0, "Ali"); // 替換索引 0
// 遍歷方式 1:Iterator
Iterator<String> it = list.iterator();
while (it.hasNext()) System.out.println(it.next());
// 遍歷方式 2:增強 for
for (String s : list) System.out.println(s);
Ali jay lisi wangwu
newCapacity = oldCapacity + (oldCapacity >> 1))。Arrays.copyOf 複製元素,舊數組可被 GC 回收。ensureCapacity 或構造器指定容量,減少拷貝。