java 7和8中哈希映射的差异

时间:2016-03-09 17:31:00

标签: java hashmap

当Java 7和Java 8都使用常量复杂度算法时,Hash Map有什么区别?根据我的理解,哈希映射通过哈希函数为对象生成哈希键,在恒定时间内搜索。

2 个答案:

答案 0 :(得分:18)

在Java 7中,在计算散列函数的散列后,如果多于一个元素具有相同的散列,则通过线性搜索搜索它们,因此它的复杂度为(n)。在Java 8中,搜索是通过二进制搜索执行的,因此复杂性将变为log(n)。因此,这个概念是错误的,哈希映射以恒定的复杂性搜索对象,因为在任何时候情况都不是这样。

答案 1 :(得分:4)

您可能会发现Java专家newsletter的最新问题非常有用。多年来,它深入讨论了Java中的哈希问题;例如,指出你最好确保你的map键实现Comparable(使用Java8时)。