gpt4 book ai didi

java - 我们可以在 Java 中使用对象作为 hashmap 中的键吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:40 24 4
gpt4 key购买 nike

如何将对象用作 HashMap 中的键。如果您使用一个对象作为键,您是否需要覆盖该对象的 equals 和 hashcode 方法?

最佳答案

一个简单的经验法则是在 HashMap 中使用不可变对象(immutable对象)作为键

因为:

如果它是可变的,那么 hashcode() 值或 equals() 条件可能会改变,您将永远无法从您的 HashMap.

更准确地说,用于计算equals()hashcode() 的类字段应该是不可变的!

现在,假设您创建自己的类:

  • 要比较类中的两个对象,您必须覆盖 equals()
  • 要将它用作任何基于哈希的数据结构中的键,您必须重写 hashcode()(同样,请牢记不变性)

请记住,如果两个对象 equal(),那么它们的 hashcode() 也应该相等!

关于java - 我们可以在 Java 中使用对象作为 hashmap 中的键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45831828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com