Hashset集合的疑问

博客探讨了Java中Set集合的遍历顺序问题,指出虽然Set理论上不保证元素的顺序,但在实践中却发现元素按照插入顺序被遍历。作者发现这与HashSet的HashMap底层实现有关,并提到不同字符串输入可能产生不同顺序,但一旦确定,顺序不会随运行而改变。作者计划深入学习HashMap以理解这一现象。

set集合跟list集合不同的地方在于,set集合中不包含重复的元素,它没有带索引的方法,所以不能用普通的for循环来遍历元素。在遍历的过程中,不能保证迭代的顺序。

话说这么说,但是我在实际敲代码的时候却遇到了按照顺序遍历的问题。

 此时元素是按照我将它们录入集合的顺序打印的。我以为是概率的问题,但是运行多次依旧是这个结果。当我换成其他字符串时,发现打印的顺序跟存入的顺序不一样了。

 但是再次运行并不能将这些元素重新排列,可见取出set集合里的元素的顺序并不是杂乱无章的,而是遵循了一定的规律。

查了下资料,Hashset的底层是由一个java.util.HashMap 类支持的。后期学完了Hashmap应该就能解决这个疑问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值