如果我不使用java中的对象使用hashtables或Hashset,则需要实现HashCode()



考虑此理论场景:

我有一个Person类。我不会使用此对象进行任何look-up操作。我将在ArraysList中使用它们,而不是SetsMaps。但是我想检查两个person Object的列表是否为equal

例如:

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

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

我将必须在我的Person类中实现equals方法。我仍然需要实现Hashcode()吗?我不是hashing我的Person对象成桶(仅为此我需要Hashcode())因此,我认为可能不是必需的

如果您覆盖equals,则实现hashCode是一种最佳实践。即使您现在可能不将它们用作钥匙,您将来也可能会使用它们。如果您将此课给其他人使用,那么您将不知道他们将如何使用它。

我建议您覆盖它,并在您覆盖一个以替代另一个时养成它的习惯。从长远来看,它将为您提供帮助。

相关内容

  • 没有找到相关文章

最新更新