您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java从HashMap检索的值的顺序是插入顺序吗?

Java从HashMap检索的值的顺序是插入顺序吗?

值按插入顺序打印。这是真的吗?我期望值将以随机顺序打印。

HashMapAPI没有定义迭代的顺序。

但是,如果查看HashMap的实现,则可以推断出迭代顺序,键的哈希值,键的插入顺序和哈希表的大小之间存在复杂的过渡关系。如果哈希表自行调整大小,则此关系会变得混乱。

在您的情况下,您正在使用Integer键,这意味着键的哈希值本身就是键值。另外,您按键顺序插入了条目。这(幸运地!)导致匹配插入顺序的迭代顺序。但是,如果您继续插入更多的键,则会发现迭代顺序“环绕”。然后,当表格经过一系列调整大小时,顺序将变得越来越混乱。

简而言之,您看到的只是哈希表实现的伪像,而不是您可以(或应该)明智地利用的东西。尤其重要,因为它可以从一个Java版本更改为另一个Java版本。

java 2022/1/1 18:14:24 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶