繁体   English   中英

hashmap 1.4和1.6之间的区别

[英]Difference between hashmap 1.4 and 1.6

我的应用程序运行在1.41.6 元素的顺序是打印在1.6版本不同于1.4 我使用了LinkedHashMap修复了这个问题。 现在这个订单与1.4完全相同。 除了下载整个jdk之外,我没有找到HashMap 1.4源代码。 除了通用版本在新版本中有什么变化?

HashMap中元素的迭代顺序从未得到保证,因此实现可以自由地更改它。 LinkedHashMap已经解决了这个缺点。

这样的改变可能是由于例如Java 1.4.1中的哈希算法完全改进 ......但是,我们还注意到在将项目迁移到Java6时发生了这样的改变,因此该版本也发生了变化。

HashMap的迭代顺序是未定义的 这意味着它可以(并且确实)一直在变化。 它不仅取决于代码,还取决于对象的哈希码的值,它们本身不仅可以从版本到版本不同,甚至可以从运行到运行。

LinkedHashMap特别作为具有可预测迭代顺序的HashMap替代方案存在。

我想HashMap的实现已经改变了。 HashMap不保证任何订单,因此您不应该依赖它,因为可以在没有任何通知的情况下使用新版本更改它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM