Set接口中HashSet的存储原理

首先我们要知道HashSet底层维护的是一个【哈希表】(哈希表就类似于Excle中的一个个单元格,但哈希表中的一个单元格可以存放不止一个元素),存储效率很高!!!

首先向HashSet集合中添加元素,HashSet首先会调用该元素的hashCode方法,获取该方法的Hash值,通过【移位】运算,

计算出该元素保存在【哈希表】中的哪一个位置

情况一:该位置没有任何元素,可以直接将需要保存的元素放入

情况二:该位置存在其他元素,【哈希表】就会调用该元素的equals方法,和已经保存在【哈希表】中该位置的元素进行比较

            如果比较结果为true,表示相同元素,无法添加

            如果比较结果为false,表示为不同元素,可以添加

哈希表的每一个单元格都是桶式结构,可以保存多个元素,可以允许多个不同元素共存!!!

这是来自一个Java初学者对Java中HashSet的理解,如有错误,还请多多指正,谢谢!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值