java - HashMap 键的顺序究竟何时受到影响,

标签 java hashmap hashtable hashcode hash-collision

我知道 hashmap 中键的顺序不能保证。 如果没有重新哈希或哈希冲突,是否会发生重新排序?

最佳答案

我们真的不应该为此担心!

查看HashMap的源码,内部似乎使用了一个HashMap.Entry对象数组,数组索引根据对象的hashCode()和阵列。所以排序与对象的hashCode和Map的大小有关。

然而,这是一种简化,我只查看了 OpenJDK 6 中的实现。

您永远不应依赖实现细节。有一个名为 Map: 的接口(interface)是有充分理由的,它定义了应该如何使用它。

关于java - HashMap 键的顺序究竟何时受到影响,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368767/

相关文章:

java - 如何在 arraylist 中找到前 20 个最常用的单词

java - 取 double[] HashMap 中每个索引的平均值并将其分配给输出 double[]

hashmap - 哈希表的空间复杂度是多少?

java - Java中更新包含hashmap的hashmap的某个值

JavaFX 进度条/进度指示器 : listen for change from multiple Sliders

java - 如何通过id获取原始资源文件名?

perl - 为什么 Perl CGI 模块使用连字符开始命名参数?

java - Cucumber @Before 钩子(Hook)打开多个浏览器窗口

java - 从 Java 中的 HashMap 中删除值的子集

c# - 搜索速度快、体积小的数据结构