List<Parttopart> parttopartList里面有很多字段如何根据supid和subid去除supid和subid相同其他元素不同的数据,详细代码
时间: 2024-11-12 11:40:59 浏览: 16
要根据`supid`和`subid`去除`parttopartList`中`supid`和`subid`相同的其他元素,你可以使用Java的`HashSet`结合流(Stream)来进行操作。首先,将所有`(supid, subid)`对放入一个HashSet中,然后过滤出只包含唯一键值对的PartTopart对象。这里是一个详细的示例代码:
```java
import java.util.*;
class PartTopart {
int supid;
int subid;
// 其他字段...
}
public class Main {
public static void main(String[] args) {
List<PartTopart> parttopartList = ...; // 你的列表
Map<Integer, Integer> uniqueKeyMap = new HashMap<>();
// 添加到集合中并保证唯一性
parttopartList.forEach(part -> uniqueKeyMap.put(part.supid, part.subid));
// 使用HashSet存储唯一的(supid, subid)
Set<Map.Entry<Integer, Integer>> uniqueEntries = uniqueKeyMap.entrySet();
// 创建一个新的列表,只包含uniqueEntries对应的PartTopart对象
List<PartTopart> filteredList = parttopartList.stream()
.filter(part -> {
return uniqueEntries.contains(new AbstractMap.SimpleEntry<>(part.supid, part.subid));
})
.collect(Collectors.toList());
// 输出或进一步处理filteredList
System.out.println(filteredList);
}
}
```
在这个例子中,`filteredList`将会只包含`supid`和`subid`组合独特的`PartTopart`对象。
阅读全文