HashSet底层是HashMap,第一次添加的时候,table数组扩容到16,临界值是16*加载因子(默认是0.75),到达临界值进行扩容。
HashSet<Integer> hashSet = new HashSet<>();hashSet.add(5);hashSet.add(2);hashSet.add(5);hashSet.add(8);hashSet.add(1);
当new一个HashSet时
其实是new了一个HashMap。HashMap在存放数据时,会先计算其key的hash值,然后拿它和当前数组长度进行 & 运算得到存储的数组下标,存储的数据会散列的分布在数组空间中,是无序的,所以HashSet也是无序的。
HashSet中的add方法
// Dummy value to associate with an Object in