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



我想知道是否有一种很好的方法可以在对象上设置Set,但在自定义字段上进行约束。

例如,我需要POJO的Set

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

我想要一个Set,在那里它们的名字是唯一的。我可以基于name属性来实现hashequals,但我不能真正使用equals来比较它们。

是否有一些不错的变通方法,或者Guava/apache-commons集合?

您可以创建包装器对象。这就像一个装饰图案。您用不同的散列实现包装您的原始对象,然后包装的对象将在集合中使用。

您可以使用HashMap<String,MyPojo>而不是Set<MyPojo>。这样,每个nameMap中最多可以出现一次。

最新更新