HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true.为true表示两个元素相等,否则不相等。
如果元素的hashCode值不同,表明两元素不相等,就不会再调用equals进行进一步的判断了。
对于HashSet集合中的元素,尽量复写public int hashCode()和public boolean equals(Object obj)
注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。 |