首页 > 解决方案 > 如何在 Java 中为对象的重复实例定义标准?

问题描述

我有一个类,其中包含一些主要字段,这些字段是其所有构造函数所必需的,然后是其他辅助字段,如果它们没有被初始化,则可以默认为空值。主要字段的组合将类的每个实例标识为唯一且不同的对象,因此具有相同主要字段的另一个实例即使具有不同的辅助字段也可能被视为重复

需要检查重复实例以将对象存储在不允许重复的类似列表的结构中,并且通过覆盖equals()(例如,由 使用ArrayList.contains())执行它以使其仅查看主字段,而完全忽略所有次要的。

这是一种有效的方法吗?

标签: javaduplicatesequals

解决方案


是的,使用所有主要变量在 hashCode() 中构造哈希码。然后在 equals() 中使用 if 条件或哈希码。


推荐阅读