set集合的HashSet 类
set是一个没有重复元素, 没有存储顺序的集合,它主要有三个实现类,如下:
HashSet 类
HashSet 类是按照哈希算法来存储集合中的元素,当向 Set 集合中添加一个元素时,HashSet 会调用该元素的 hashCode() 方法,获取其哈希码,然后查找集合中是否有哈希值相同的对象,
如果没有就直接存入,如果有哈希值相同的对象, 和相同的对象逐个进行equals比较,如果比较结果全部为false就存入,根据这个哈希码计算出该元素在集合中的存储位置,进行储存,
如果比较结果包含true就不存
如果是默认的equals和hashcode方法,一个对象的属性只要有一条不同,就会向集合里面添加
这里重写的equals方法和hashcode方法,变成只要price这个属性不一样,就进行储存。
HashSet集合判断两个元素的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode方法返回值也相等