java - 如何在 Java 中为对象的重复实例定义标准?
问题描述
我有一个类,其中包含一些主要字段,这些字段是其所有构造函数所必需的,然后是其他辅助字段,如果它们没有被初始化,则可以默认为空值。主要字段的组合将类的每个实例标识为唯一且不同的对象,因此具有相同主要字段的另一个实例即使具有不同的辅助字段也可能被视为重复。
需要检查重复实例以将对象存储在不允许重复的类似列表的结构中,并且通过覆盖equals()
(例如,由 使用ArrayList.contains()
)执行它以使其仅查看主字段,而完全忽略所有次要的。
这是一种有效的方法吗?
解决方案
是的,使用所有主要变量在 hashCode() 中构造哈希码。然后在 equals() 中使用 if 条件或哈希码。
推荐阅读
- python - 俄罗斯方块 pygame 掉落问题
- mongodb - 如何在 MongoDB 中的 $lookup 文档上编写 $match
- java - java.lang.IllegalStateException:无法在 Spring Boot 中使用 Selenium 通过 Maven 从 jar 错误清单中读取 Class-Path 属性
- c - c中的多行宏(#if-#endif)
- r - ggplot2:图例混合颜色和隐藏线用于预测图
- javascript - 传递 props 时何时使用 this.prop?
- c++ - 基准 C `std::isdigit`
- javascript - 文档中的语法、参数
- statistics - 比较逻辑模型中两个子样本的边际值
- android - 如何连接 Firebase 身份验证和 Firebase 收集数据库?