HashSet注意事项

set 特点:无序性、不可重复性

 无序性:不是随机性

              而是不是按照顺序存放

hashSet:线程不安全,可以存放null

对于频繁遍历:LinkedHashSet效率高于hashSet

hashCode值相当于set中的索引。

比较两个元素是否相等,先比较其hashCode值是否相同

  如果不同,则存储。

  如果相同,再比较equals()方法。

这样做的好处是:可以提高比较效率

HashSet底层的存储方式:数组+链表形式存储。

要求:向set中添加的数据,其所在的类一定要重写hashCode()和equals()方法。

   重写的hashCode()和equals()保持一致。

   即 对象中用作equals()方法比较的Field都应该用来计算hashCode值。

原文地址:https://www.cnblogs.com/kukai/p/12808650.html