Java 8 正在为字符串键提供替代哈希,以在遇到大量键哈希代码冲突时提高性能。谁能解释一下那是什么以及它是如何工作的?
最佳答案
为了使这个问题更具相关性,替代哈希已从 JDK 8 中删除。查看:
http://docs.oracle.com/javase/8/docs/technotes/guides/collections/changes8.html
http://openjdk.java.net/jeps/180
有趣的是,一旦哈希桶中的项目数量增长超过某个阈值,该桶就会从使用条目链表切换到平衡树。
HashMap中的hash(Object key)函数修改如下,对String对象没有特殊处理:
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
关于java - 什么是 Java 8 中字符串键的替代哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11946486/