首先我们要知道HashSet底层维护的是一个【哈希表】(哈希表就类似于Excle中的一个个单元格,但哈希表中的一个单元格可以存放不止一个元素),存储效率很高!!!
首先向HashSet集合中添加元素,HashSet首先会调用该元素的hashCode方法,获取该方法的Hash值,通过【移位】运算,
计算出该元素保存在【哈希表】中的哪一个位置
情况一:该位置没有任何元素,可以直接将需要保存的元素放入
情况二:该位置存在其他元素,【哈希表】就会调用该元素的equals方法,和已经保存在【哈希表】中该位置的元素进行比较
如果比较结果为true,表示相同元素,无法添加
如果比较结果为false,表示为不同元素,可以添加
哈希表的每一个单元格都是桶式结构,可以保存多个元素,可以允许多个不同元素共存!!!
这是来自一个Java初学者对Java中HashSet的理解,如有错误,还请多多指正,谢谢!!!