默认情况下,JAVA使用哪些技术来处理哈希码冲突

时间:2013-07-17 10:20:17

标签: java hash hashcode

默认情况下,JAVA使用哪些技术来处理哈希码冲突?它是单独链接还是依赖于不同平台的JVM实现?

1 个答案:

答案 0 :(得分:0)

正如javadoc所解释的那样:

  

尽可能合理,Object类定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要此实现技术。)

因此,如果JVM使用这种策略实现hashCode(),除非你有大量的堆空间并且非常不走运,否则你不会发生任何冲突。

也就是说,对象的hashCode()在实践中并不是很重要,因为在HashMaps中用作键的大多数类都会覆盖hashCode()方法。