哈希冲突到底是什么
HashMap中的哈希冲突或哈希冲突并不是一个新话题,我遇到了几个博客和讨论板,解释了如何产生哈希冲突或如何以模糊和详细的方式避免它。我最近在一次采访中遇到了这个问题。我有很多事情要解释,但我认为很难准确地给出正确的解释。很抱歉,如果我的问题在这里重复,请路由我到确切的答案:
- 哈希冲突到底是什么 - 它是一种功能,还是一种常见现象,它被错误地完成但最好避免?
- 究竟是什么原因导致哈希冲突 - 自定义类方法的错误定义,或者使方法未被覆盖,而不完全覆盖方法,或者它不是由开发人员决定的,许多流行的java库也有可能导致哈希冲突的类?
hashCode()
equals()
hashCode()
- 发生哈希冲突时,是否有任何错误或意外?我的意思是,我们有什么理由应该避免哈希冲突吗?
- Java在对象启动期间是否生成或至少尝试为每个类生成唯一的哈希码?如果不是,那么仅依靠Java来确保我的程序不会遇到JRE类的哈希冲突是正确的吗?如果不正确,那么如何避免使用String作为键等最终类的哈希映射的哈希冲突?
如果你能分享你对其中一个或所有问题的答案,我会很高兴。