HashSet底层数据结构是哈希表,哈希表按哈希值来存储,HashSet集合中有若干个存储区域,而每个对象可以计算出一个hash值,系统会自动将这个值分组,对应若干个存储区域。当添加新元素时,系统会计算出这个元素的hash值,然后跟存储区域的每一个元素进行比较,如果不相同则添加该新元素。如果相同再equals比较,若为false,则添加该元素。
简单说就是同过元素的两个方法,hashcode()和equals()来完成,如果元素的hashCode值相同,再判断equals是否为true,若为true就存不进去,如果元素的hashCode值不同,不会调用equals,直接存进去
解说HashSet如何保证元素的唯一性
时间: 2024-10-08 09:17:22