是通过hashCode()方法,因为应为hashset集合存储数据的形式是存储和读取的顺序不一致(注意),并不是真的无序,hashset集合里的方法会利用它里面的属性值还有你存入的值进行计算出一个hash值,然后通过这个hash值来进行存储数据到hashset集合指定的区域,那么这个指定的区域是hashset根据自己的属性值进行划分的,所以你在查找hashset里的值时,他也是通过hash值来进行判断从哪个区域去找,而不是挨个找,所以记得你自己定义的类重写了hashcode方法时,不要去修改这个类里的属性值,因为这样会影响hash值。 |