List<Parttopart> parttopartList里面如何根据supid和subid去重,详细代码
时间: 2024-11-12 12:41:08 浏览: 4
要在`List<PartToPart>`中根据`supId`和`subId`去重,你可以使用Java的`HashSet`或者自定义一个`Comparator`配合`Stream` API。这里我将提供一种基于`HashSet`的简单方法:
```java
import java.util.*;
// 假设 PartToPart 类有一个 supId 和 subId 字段
class PartToPart {
private int supId;
private int subId;
// 省略构造函数和 getters/setters...
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
PartToPart other = (PartToPart) obj;
return supId == other.supId && subId == other.subId;
}
@Override
public int hashCode() {
int result = supId;
result = 31 * result + subId;
return result;
}
}
public List<PartToPart> removeDuplicates(List<PartToPart> parttopartList) {
Set<PartToPart> uniqueParts = new HashSet<>(parttopartList.size());
parttopartList.forEach(part -> {
if (!uniqueParts.contains(part)) {
uniqueParts.add(part);
}
});
return new ArrayList<>(uniqueParts);
}
```
在这个例子中,我们首先创建一个`HashSet`,它自动处理元素的唯一性。然后遍历`parttopartList`,如果某个`PartToPart`实例不在集合中,就添加进去。最后,我们将`HashSet`转换回`List`返回。
阅读全文