问题:HashSet子类依靠()方法区分重复元素。
1、toString(),equals() 2、clone(),equals() 3、hashCode(),equals() 4、getClass(),clone()
正确答案:
3 hashCode(),equals()
解析:
HashSet类,是存在于java.util包中的类。同时也被称为集合,该容器中只能存储不重复的对象。
HashSet的底层还是用HashMap来实现的。将Entry
而HashMap的数据结构是数组+链表+红黑树。
调用K的hashCode方法,然后高低16位进行&运算。得到的hash值,与数组tab[](桶)的长度-1进行&运算,确定插入对象在哪一个桶上。然后调用对象的equals方法,形成链表。当链表长度大于8时,链表转红黑树。