gpt4 book ai didi

java - 如果我不在 java 中的对象中使用哈希表或哈希集,我是否需要实现 hashcode()

转载 作者:行者123 更新时间:2023-12-01 23:14:56 26 4
gpt4 key购买 nike

考虑这个理论场景:

我有一个 Person 类。我不会对此对象执行任何查找操作。我将在ArraysList中使用它们,但不会在SetsMaps中使用它们。但我想检查两个person对象列表是否相等

例如:

List<Person> list1 = new ArrayList<>();
List<Person> list2 = new ArrayList<>();

如果我想检查这些列表是否相等System.out.println(list1.equals(list2))

我必须在我的 Person 类中实现 equals 方法。我还需要实现Hashcode()吗?我不会将我的 Person 对象散列到存储桶中(仅为此我需要 Hashcode())所以我认为可能没有必要

最佳答案

如果您要覆盖 equals,最佳实践是实现 hashCode。即使您现在可能不使用它们作为 key ,但将来可能会使用它们。如果您将此类提供给其他人使用,那么您无法知道他们将如何使用它。

我建议您覆盖它,并在您覆盖一个覆盖另一个时养成习惯。从长远来看,它会对您有所帮助。

关于java - 如果我不在 java 中的对象中使用哈希表或哈希集,我是否需要实现 hashcode(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392523/

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