List<EcOrderGoodsDto> Stream循环给里面的某个字段赋值
时间: 2023-05-12 14:06:31 浏览: 78
可以使用 map() 方法来给 List<EcOrderGoodsDto> 中的某个字段赋值,示例代码如下:
List<EcOrderGoodsDto> orderGoodsList = new ArrayList<>();
// 使用 Stream 循环给 orderGoodsList 中的 goodsName 字段赋值
orderGoodsList.stream().map(orderGoods -> {
orderGoods.setGoodsName("商品名称");
return orderGoods;
}).collect(Collectors.toList());
相关问题
当List<B>以复数字段作为keyList与List<A>进行match,match成功时,将List<B>根据条件将部分字段更新后生成新的list,并且要求不改变原来List<B>的值。用Java8写一个满足需求的代码
假设List<A>中有一个字段aField,List<B>中有一个字段bField,我们需要以bField作为keyList去匹配List<A>中的aField,如果匹配成功,则将List<B>中的部分字段更新后生成新的List,不改变原来的List<B>。
可以使用Java8的流式操作来实现这个需求,具体代码如下:
```
List<B> originalListB = new ArrayList<>();
//初始化原始List<B>
List<A> listA = new ArrayList<>();
//初始化List<A>
List<B> updatedListB = originalListB.stream()
.map(b -> {
Optional<A> matchedA = listA.stream()
.filter(a -> a.getAField().equals(b.getBField()))
.findFirst();
if (matchedA.isPresent()) {
//匹配成功,生成新的B对象并更新部分字段
B newB = new B(b.getBField());
newB.setOtherField1(b.getOtherField1());
newB.setOtherField2(matchedA.get().getOtherField());
return newB;
} else {
//匹配失败,返回原始的B对象
return b;
}
})
.collect(Collectors.toList());
```
这段代码首先使用stream()方法将List<B>转换为一个流,在流中使用map()方法遍历每个B对象,并对其进行处理。在map()方法中,使用stream()方法将List<A>转换为一个流,然后使用filter()方法过滤出与当前B对象匹配的A对象,如果匹配成功,则使用findFirst()方法获取第一个匹配成功的A对象。如果匹配失败,则直接返回原始的B对象。
如果匹配成功,则生成一个新的B对象并更新部分字段,然后返回这个新的B对象。最后,使用collect()方法将处理后的B对象收集到一个新的List中,并将其赋值给updatedListB。
java 讲List<Map> 转为 List<PoJo>
可以使用 Java 8 的 Stream API 和 Lambda 表达式来实现 List<Map> 转为 List<PoJo>,具体实现可以参考以下代码:
List<Map<String, Object>> mapList = new ArrayList<>();
// 假设 mapList 已经被赋值
List<PoJo> pojoList = mapList.stream().map(map -> {
PoJo pojo = new PoJo();
pojo.setField1((String) map.get("field1"));
pojo.setField2((Integer) map.get("field2"));
// 其它字段的赋值
return pojo;
}).collect(Collectors.toList());
其中,PoJo 是一个自定义的类,包含了需要转换的字段。Map<String, Object> 则是一个键值对集合,其中键是字段名,值是字段值。使用 Stream API 和 Lambda 表达式,可以方便地将 Map 转换为 PoJo。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)