List<Parttopart> parttopartList里面有很多字段如何根据supid和subid去重复数据,详细代码
时间: 2024-11-12 22:40:46 浏览: 4
在Java中,如果你有一个`List<PartToPart>`类型的列表,其中`PartToPart`是一个包含`supId`和`subId`字段的对象集合,并且你想通过这两个属性去除重复项,你可以使用`LinkedHashSet`,因为它不允许有重复元素,并保持插入顺序。以下是处理这个问题的一个示例:
```java
import java.util.*;
class PartToPart {
int supId;
int subId;
// 其他字段...
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
PartToPart part = (PartToPart) obj;
return supId == part.supId && subId == part.subId;
}
@Override
public int hashCode() {
return Objects.hash(supId, subId);
}
}
public void removeDuplicates(List<PartToPart> partTopartList) {
Set<PartToPart> uniqueParts = new LinkedHashSet<>(partTopartList.size());
for (PartToPart part : partTopartList) {
uniqueParts.add(part);
}
partTopartList.clear(); // 清空原list
partTopartList.addAll(uniqueParts); // 添加无重复的元素到新的list
}
```
在这个例子中,我们首先创建了一个`LinkedHashSet`来保存唯一的`PartToPart`对象。然后遍历原始列表,将每个元素添加到`uniqueParts`。最后,清空原来的`partTopartList`并添加去重后的元素。
阅读全文