List<Parttopart> parttopartList里面有二十万条数据,如何去掉其中supid和subid相同的数据
时间: 2024-11-12 19:40:45 浏览: 11
JAVA第二章超市系统
要从一个包含二十万条`PartToPart`对象的大列表`parttopartList`中去除所有`supId`和`subId`相同的项,你可以创建一个新的列表,并在添加元素之前检查它是否已经存在。这里提供一种Python风格的示例,假设`PartToPart`有一个名为`equals(PartToPart other)`的方法用于比较两个对象:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
class PartToPart {
private int supId;
private int subId;
// 省略getter和setter
@Override
public boolean equals(Object obj) {
if (obj instanceof PartToPart) {
PartToPart p = (PartToPart) obj;
return this.supId == p.supId && this.subId == p.subId;
}
return false;
}
@Override
public int hashCode() {
// 返回一个基于supId和subId计算的哈希值
return Objects.hash(supId, subId);
}
}
List<PartToPart> originalList = ...; // 原始列表
List<PartToPart> distinctList = new ArrayList<>();
for (PartToPart part : originalList) {
if (!distinctList.contains(part)) {
distinctList.add(part);
}
}
```
在这个例子中,我们遍历原始列表,如果发现某个元素不在新列表`distinctList`中,则将其添加进去。这样,最终得到的`distinctList`将只包含`supId`和`subId`都不相同的`PartToPart`对象。
阅读全文