Java基础---第十四篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、HashMap 中的 key 我们可以使用任何类作为 key 吗?
  • 二、HashMap 的长度为什么是 2 的 N 次方呢?
  • 三、HashMap 与 ConcurrentHashMap 的异同


一、HashMap 中的 key 我们可以使用任何类作为 key 吗?

平时可能大家使用的最多的就是使用 String 作为 HashMap 的 key,但是现在我们想使用某个自定
义类作为 HashMap 的 key,那就需要注意以下几点:
如果类重写了 equals 方法,它也应该重写 hashCode 方法。
类的所有实例需要遵循与 equals 和 hashCode 相关的规则。
如果一个类没有使用 equals,你不应该在 hashCode 中使用它。
咱们自定义 key 类的最佳实践是使之为不可变的,这样,hashCode 值可以被缓存起来,拥有
更好的性能。不可变的类也可以确保 hashCode 和 equals 在未来不会改变,这样就会解决与
可变相关的问题了。

二、HashMap 的长度为什么是 2 的 N 次方呢?

为了能让 H

你可能感兴趣的:(java,开发语言)