独特元素的java集合

标签 java

我有一个 myObject 的 Collection coll。只有在集合中没有这样的元素时,我才想添加一个元素到 coll。

我已经覆盖了 myObject 的 equals 方法。它检查其 20 个属性是否相等。

但是在集合的情况下,我想仅基于这些属性之一进行相等性检查(并因此进行添加)。

也许我的架构有缺陷,我不应该有两个 equals 的定义,而应该有 2 个不同的对象。

但是,是否有可能在没有太多重构的情况下从这里实现我想要的?也就是说,我想要某种 Set 集合,我可以在其中告诉如何进行比较检查。这类似于 Collection.sort() 方法,您可以在其中提供比较器来检查比较。

最佳答案

寻找HashSet 。它将存储唯一值。从这里的评论来看,您必须覆盖哈希码和等于方法以提供每个对象的唯一性。您可以阅读这两种方法之间的关系 here .

关于独特元素的java集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009027/

相关文章:

java - 在 Spring 中编写自定义 PlaceholderResolver(如 PropertyPlaceholderConfigurerResolver)

java - public void - Button.setEnabled 与 if 语句适合我的情况吗?

java - JBPM 到 Drools Flow - 是否有记录的迁移路径?

java - 用于从现有编辑器中删除验证的 Eclipse 插件

java - Java中每种类型的对象类

java - 字符串无法转换为 JSONObject?

java - 每种纹理都有一个 OpenGL ES 程序?

java - 如何测试验证注释?

java - Netbeans Java 项目的自定义 BuildFile 失败

java - Codingbat-递归1-count7