哈希
hashCode() 与 equals() 决定了键在 HashMap 中的定位与比较,若实现不当会导致冲突或误判相等,直接影响集合的准确性。HashMap 以键值对存储,使用键的 hashCode 计算数组下标并在冲突时通过链表或 JDK8 起的红黑树保存,支持 put/get 的快速访问;容量与负载因子决定扩容时机,扩容后桶数保持 2 的幂次。HashMap 不是同步的,key、value 可为 null,映射无序。构造一致性哈希时在 2³² 环上放置节点,按键的 hash 顺时针定位最近节点,提升扩缩容时的路由稳定性。作为键的对象必须保证 hashCode 在生命周期内不变。HashSet 仅保存唯一元素,内部基于 HashMap 实现,存取无序。