欢迎!请查看关于页面以了解更多关于这是如何工作的信息。
评论者:alexmiller
谢谢,我们讨论了这个问题以及我们可以采取的一些措施,但我们还没有为它创建工单。
尽管Java 7的方法依赖于(尝试)适当地使用字符串哈希码对哈希表进行初始化,但这一做法在Java 8中被全部摒弃,Java 8通过改进数据结构来避免DoS碰撞哈希攻击,将线性碰撞转换为日志时间(红黑树)来处理冲突。同样,在Clojure中可能也有类似的方法可以工作。
现在可以使用的一种解决方案是,将map键包装在一个实现了IHashEq并实现了替代哈希函数的自定义类型中。