capacity()、ensureCapacity()、trimToSize() 容量控制方法。push/pop/peek (繼承自 Stack)。Vector 專有遍歷方式 (也是早期所有集合通用介面),已被 Iterator 取代。
Vector v = new Vector<>();
v.add("Java基礎");
v.add("集合框架");
v.add("多線程");
Enumeration en = v.elements(); // 獲取枚舉
while (en.hasMoreElements()) {
System.out.println(en.nextElement());
}
| 特性 | Enumeration | Iterator |
|---|---|---|
| 方法名 | hasMoreElements() / nextElement() | hasNext() / next() |
| 刪除支援 | 無 | remove() |
| 適用範圍 | Vector、Hashtable、屬性列表 | 所有 Collection |
| Fail-Fast | 無 (Vector 同步鎖保護) | 有 (非同步集合) |
| 現代地位 | 棄用 (Legacy) | 標準 |
ArrayList + for-each / iterator() / stream()。CopyOnWriteArrayList (寫時復制,遍歷無鎖)。Collections.synchronizedList(new ArrayList<>()) (鎖住整個列表) 或 ConcurrentLinkedQueue (無鎖佇列)。ArrayDeque (非同步、高性能)。HttpServletRequest.getParameterNames() 返回 Enumeration)。remove(),遍歷中無法安全刪除。Vector 與 Enumeration 是 Java 早期集合框架產物,已被 ArrayList/Iterator/並發包完全取代。了解其歷史地位、API 差異與現代替代方案,有助於維護舊代碼、避免在新項目誤用,並在面試中展現對集合演進歷程的理解。