java.util.Set,但对字段有自定义约束

标签 java collections

我想知道是否有一种好方法可以在对象上设置 Set,但仅限于自定义字段。

例如,我需要一组 POJO:

class MyPojo {
  private String name;
  private Map<Object, Object> stuff;
  //getters, setters, constructor
}

我想要一个Set,其中它们的名称是唯一的。 我可以根据 name 属性实现 hashequals,但是我无法使用真正的 equals 进行比较他们。

是否有一些不错的解决方法或者可能是 Guava/apache commons 集合?

最佳答案

您可以创建包装对象。这就像装饰器模式。您使用不同的哈希实现来包装原始对象,然后包装的对象将在 Set 中使用。

关于java.util.Set,但对字段有自定义约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603777/

相关文章:

java - 在 OpenLiberty 上使用 Hibernate Envers 设置自定义修订信息

java - Java 8 中原始特化的不一致

mysql - 查询、显示和过滤大型数据库列表

java - 使用 Guava Multimap 表示 xml 名称和值

.net - .NET 中是否有同时用作字典和列表的集合?

java - Hibernate父子关联

java - 在 Xcode 4 中编译 Java

java - 通过在 Java 中测试 int 数组的值来创建一个 char 数组

java - 似乎无法在事件处理程序中设置文本

vector - 如何将集合中的多个元素传递给一个或多个元素可变的函数?