有一个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());
不知道为什么它不起作用,有人知道吗?