去除List<Tmhma02> items集合中Tmhma02对象里bsUnloadPriceRule字段相同的对象,利用流
时间: 2024-11-03 21:23:50 浏览: 21
在Java中,你可以使用Stream API来去除`List<Tmhma02>`集合中bsUnloadPriceRule字段值相同的对象。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 假设你有一个List<Tmhma02>
List<Tmhma02> items = ... // 初始化你的列表
// 使用流处理,首先转换为Map<String, Tmhma02>,键是bsUnloadPriceRule值,值是对象本身
Map<String, Tmhma02> uniqueItemsMap = items.stream()
.collect(Collectors.toMap(Tmhma02::getBsUnloadPriceRule, Function.identity(), (oldValue, newValue) -> oldValue));
// 然后将Map转换回List,只保留每个唯一值对应的对象
List<Tmhma02> uniqueItems = uniqueItemsMap.values().stream().collect(Collectors.toList());
System.out.println(uniqueItems);
}
}
```
在这个例子中,`Collectors.toMap`方法用于收集具有相同`bsUnloadPriceRule`值的对象,而`Function.identity()`提供了一个默认行为,当两个对象有相同的键(价格规则)时,它会选择第一个出现的对象。如果有冲突,`oldValue`和`newValue`会被传递给`merge`函数,这里我们简单地选择了旧值`oldValue`。
阅读全文