ArrayList:動態陣列,擴容機制 1.5 倍,隨機存取 O(1),插入刪除 O(n)。
HashMap:雜湊表(陣列 + 連結表/紅黑樹),JDK 1.8 引入樹化優化碰撞,Key 透過 hashCode() 定位桶位,equals() 比較。實作 Map 介面。
HashSet:底層包裝 HashMap,Key 為元素,Value 為固定 PRESENT 物件,實作 Set 介面。
核心契約:equals() 相等必須 hashCode() 相等,反之不一定。