Map 存儲鍵值對,鍵唯一。HashMap 是最常用的實現,基於哈希表,查詢速度快(O(1)),非線程安全,允許一個 null key 和多個 null value。
| 操作 | 方法 | 說明 |
|---|---|---|
| 添加/更新 | put(K key, V value) | 放入鍵值對,鍵存在則覆蓋並返回舊值 |
| 刪除 | remove(Object key) | 根據鍵刪除條目 |
| 清空 | clear() | 移除所有映射關係 |
| 查詢大小 | size() | 返回鍵值對數量 |
| 獲取值 | get(Object key) | 根據鍵獲取值,不存在返回 null |
| 判斷鍵存在 | containsKey(Object key) | O(1) 判斷鍵是否存在 |
| 判斷值存在 | containsValue(Object value) | O(n) 遍歷判斷值是否存在 |
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>(); // 強類型推薦
map.put(1, "一");
map.put(2, "二");
map.put(3, "三");
map.put(4, "四");
map.remove(1); // 刪除 key=1
System.out.println("元素個數: " + map.size()); // 3
System.out.println("key=4 的值: " + map.get(4)); // 四
System.out.println("是否包含 key=1: " + map.containsKey(1)); // false
System.out.println("是否包含 value=二: " + map.containsValue("二")); // true
}

List 有序、可重複、支持索引訪問。
| 操作 | 方法 | 說明 |
|---|---|---|
| 添加 | add(E e) / add(int index, E element) | 尾部添加 / 指定位置插入 |
| 刪除 | remove(int index) / remove(Object o) / clear() | 按索引/按對象/清空 |
| 獲取 | get(int index) / size() / contains(Object o) | 按索引取值/長度/包含判斷 |
List<String> list = new ArrayList<>();
list.add("jackie"); list.add("peter"); list.add("annie");
list.add("martin"); list.add("marry");
list.remove(3); // 刪除索引 3 (martin)
list.remove("marry"); // 刪除對象 "marry"
// 1. 普通 for 循環(支持索引操作、刪除時需倒序或索引回退)
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 2. 增強 for / for-each(語法簡潔,不可刪除元素,否則拋 ConcurrentModificationException)
for (String s : list) {
System.out.println(s);
}
// 3. Iterator 迭代器(唯一安全的遍歷中刪除方式)
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
if ("annie".equals(s)) {
it.remove(); // 安全刪除
}
System.out.println(s);
}

Iterator 是輕量級對象,單向遍歷:hasNext()、next()、remove()。ListIterator 繼承它,雙向遍歷,支持 add/set。
使用泛型 <K, V>、<E> 實現編譯期類型檢查,消除強轉,提高代碼可讀性與安全性。
Map<String, Integer> map = new HashMap<>(); // Java 7+ 鑽石語法
List<String> list = new ArrayList<>();
HashMap。ArrayList。LinkedList。ConcurrentHashMap、CopyOnWriteArrayList 或 Collections.synchronizedXxx。