如何有效地删除重复的属性实体



有一个List<Entity> dataList,一些多个属性需要是唯一的,所以我们要删除重复。例如,下面是我的实体:

public class Entity {
String A;
String B;
String C;
}

我们想要得到一个具有不同(A,B,C(的实体列表,这意味着没有2个实体具有相同的(A和B和C(,但分别A或B或C可以相同。该方法dataList = removeDuplication(dataList).

我应该如何写出具有高性能的逻辑?

我添加了等号和哈希码,如下所示:

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Entity that = (Entity) o;
return Objects.equals(getA(), that.getA())
&& Objects.equals(getB(), that.getB())
&& Objects.equals(getC(), that.getC()));
}
@Override
public int hashCode() {
return Objects.hash(getA(), getB(), getC());
}

在方法中,我使用这个:

entityList.stream().collect(Collectors.toSet()).stream().collect(Collectors.toList());

不知道为什么它不起作用,有人知道吗?

最新更新