HashSet
- 不能保证元素的排列顺序;
- HashSet不是同步,多线程访问,需要代码来保证同步
- 集合值可以是null
当存入元素到HashSet
1. 调用对象的hashCode()方法,来获得该对象的hashCode的值
2. 根据HashCode的值来决定在HashSet的存储位置
3. 若2元素equals返回true,但是hashCode不相同,HashSet将会把他们存储在不同的位置
HashSet判断两个元素相等的标准:(重写时,应该保证,equals相等和hashCode相等)
1. equals()相等
2. hashCode()相等
- hashcode相同,equals不同,就需要再相同的位置用链式存储多元素,导致性能下降
HashMap
上述性质适用于HashMap
* key,value对