我正在尝试从List中删除具有对象特定属性的重复数据。
答案 0 :(得分:1)
如果此特定类型的标识和相等性基于您担心的这些字段的值,则更好的选择可能是实现equals
和hashCode
。
通过这种方式,您可以构建一组这些对象,根据定义,这些对象不会包含重复的实例。
如果这不可能(例如,如果您无权访问此类的源),则可以将anyMatch
与谓词一起使用(仅适用于Java 8):
return list.stream().anyMatch(element -> element.getField().equals(someValue));
如果您关心更多字段,也可以将它们包含在谓词中。
在Java< = 7中,您将不得不迭代值:
boolean contains = false;
Iterator<MyObject> = list.iterator();
while(iterator.hasNext() && !contains) {
contains = iterator.next().getField().equals(someValue);
}
return contains;
答案 1 :(得分:0)
覆盖类的equals(Object obj)方法。将obj投射到yoir课程并检查您的某些文件。
然后将全部插入到Set中。集合集合不会有任何重复。