List<WmsSapMoItem> moItems通过stream根据Rspos属性为主键转换成List<String,WmsSapMoItem>
时间: 2024-09-13 10:16:40 浏览: 27
在Java中,你可以使用Stream API来根据`Rspos`属性将`List<WmsSapMoItem>`转换为`Map<String, WmsSapMoItem>`,其中键是`Rspos`值,值是对应的`WmsSapMoItem`对象。然后进一步转换为`List<String, WmsSapMoItem>`的形式,每个元素是一个字符串键和对应的对象。下面是一个示例:
```java
List<WmsSapMoItem> moItems = ...; // 初始化你的列表
Map<String, WmsSapMoItem> map = moItems.stream()
.collect(Collectors.toMap(WmsSapMoItem::getRspos, Function.identity()));
// 现在map中每个键值对是(String Rspos, WmsSapMoItem item)
List<Map.Entry<String, WmsSapMoItem>> entryList = map.entrySet().stream()
.map(Map.Entry::toString) // 转换为String形式
.collect(Collectors.toList());
List<String, WmsSapMoItem> combinedList = entryList.stream()
.map(entry -> (entry, moItems.stream() //
.filter(item -> item.getRspos().equals(entry)) //
.findFirst() //
.orElse(null))) // 如果找不到匹配的Rspos,可以返回null或特定默认值
.collect(Collectors.toList());
```
阅读全文