关于HashSet是无序的个人理解

结合两篇博客内容总结,当输入值大小和底层数组大小相近时,HashSet输入无序但输出有序,因其哈希值在底层是顺序排列;当输入值大小和底层数组相差大时,大的数哈希值可能小于小的数,输出结果无序,多看底层代码可理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先看下面两篇博客:

https://blog.csdn.net/snail_rao/article/details/7341315

https://blog.csdn.net/qq_24251323/article/details/52748398

这两篇博客都有自己的理解,结合一下,可以总结有如下情况:

   (1)、当输入的值大小和底层数组大小差不多的时候,HashSet的输入顺序是无序的,但输出是有序的,因为这些数的哈希值,在底层是顺序拍的,故输出也是有序的

    (2)、而当输入的值大小和底层数组相差很大时,大的数的哈希值有可能是小于比他小的数的,这时候输出的结果就是无序的。

 其实多看底层代码就能理解了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值