哪些集合无序、可重复?往HashSet中放入两个相等的对象时,集合中保留的是第一个还是第二个?如何证明?
考察说明
考察Java集合框架中HashSet的存储特性及元素相等性判断机制
回答思路
- 准确指出无序且可重复的集合类型(如List、ArrayList、LinkedList)
- 说明HashSet基于HashMap实现,底层使用HashMap的key存储元素,不支持重复
- 解释HashSet添加元素时通过hashCode和equals方法判断是否已存在,若存在则新元素覆盖旧元素(实际是HashMap的put方法覆盖返回旧值)
- 给出通过遍历HashSet或使用迭代器验证存储元素内容的证明方法
- 能解释为什么HashSet不能区分先后顺序,但能通过元素引用或对象属性证明最终存储的是哪个