如上图,当Person类重写了Object类的hashCode() 方法后,那么HashSet集合添加元素时,就会根据所添加元素的hashCode值进行排序。所以储存顺序可能不一样,执行结果为 1002,BB – 1001,AA。
当Person类没有重写hashCode() 方法时,那么此时的HashCode集合就像List集合一样,添加是按照添加顺序进行添加的,如下图:
可以看到运行结果就和添加结果一样了,这就是set接口的无序性,必须依靠所添加元素重写hashCode() 方法实现,如果还需实现所添加元素不能重复的特性,就必须也让所添加元素同时重写equals() 方法,实现set接口的无序性丶不重复性。
Java HashSet集合的小理解
最新推荐文章于 2024-08-08 22:50:50 发布