springboot里面List<Parttopart> parttopartList里面有supid和subid和其他字段,如何去掉其他supid和subid相同的数据
时间: 2024-11-12 09:40:57 浏览: 4
在Spring Boot中,如果你想从`List<PartToPart>`中去掉那些`supid`和`subid`相同的元素,你可以采用集合的特性以及流(Stream)来实现。以下是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<PartToPart> partToparts = new ArrayList<>();
// 假设partToparts已填充了数据
partToparts = partToparts.stream()
.collect(Collectors.groupingBy(PartToPart::getSupidAndSubid)) // 分组依据supid和subid
.values() // 获取每个分组的元素列表
.flatMap(List::stream) // 将每个分组转为Stream,消除重复项
.collect(Collectors.toList()); // 转回List结果
System.out.println(partToparts);
}
private static class PartToPart {
private int supid;
private int subid;
// 其他字段...
// getters and setters
// 构造函数等...
public int getSupidAndSubid() {
return supid + "-" + subid;
}
}
}
```
这里我们首先通过`groupingBy`方法按`supid`和`subid`组合成一个新的键,每个键对应一个分组内的元素列表。然后使用`flatMap`转换这些分组的列表为流,再通过`collect`收集到一个新的无重复的列表。
注意:上述代码假设`supid`和`subid`的组合能够形成一个唯一的键,如果它们不是联合唯一,则需要调整`getSupidAndSubid`方法以得到一个更准确的键。
阅读全文