欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > Java对集合进行操作,赋值新字段

Java对集合进行操作,赋值新字段

2025/11/19 23:39:05 来源:https://blog.csdn.net/qq_56947957/article/details/147627208  浏览:    关键词:Java对集合进行操作,赋值新字段

1、方法一:增强for循环

List<Refund> list = refundService.selectRefundList(queryParam);
for (Refund refund : list) {refund.setPayWay(refund.getPaymentMethod()); // 将支付方式赋值给付款方式
}

在 Java 中,当你使用 for 循环遍历 List<Refund> 时,refund 变量实际上是 List 中每个 Refund 对象的引用。所以,当你调用 refund.setPayWay() 时,实际上是修改了列表中对应元素的 payWay 字段。

在这个循环中,refundlist 中的每一个 Refund 对象的引用。所以,setPayWay() 会直接修改该对象的状态,而这个对象是在 list 中的。因此,不需要再特别处理存储问题。 

对象没有更新:可能与get、set方法有关

2、方法二:stream流、forEach 

import java.util.List;List<Refund> list = refundService.selectRefundList(queryParam);// 使用 Stream 来遍历并更新 payWay 字段
list.stream().forEach(refund -> refund.setPayWay(refund.getPaymentMethod())); // 将支付方式赋值给付款方式// 返回更新后的 list
return ResponseEntity.ok(list); // 确保这里返回的是更新后的 list
  • list.stream(): 将 List<Refund> 转换成 Stream<Refund>,这样你就可以使用流式的操作来处理它。

  • forEach(refund -> refund.setPayWay(refund.getPaymentMethod())): 对 Stream 中的每个元素(即每个 Refund 对象)执行 setPayWay 操作。这里 refundStream 中的每个元素。

  • 返回 list: 处理完成后,你可以将更新后的 list 返回。

3、方法三: stream流、map

List<Refund> updatedList = list.stream().map(refund -> {refund.setPayWay(refund.getPaymentMethod()); // 设置付款方式return refund; // 返回更新后的 Refund 对象}).collect(Collectors.toList()); // 收集到一个新的 List// 返回更新后的 list
return ResponseEntity.ok(updatedList);

主要区别

  • forEach: 会直接在原列表上修改对象(没有创建新的列表)。

  • map + collect: 创建一个新的列表,并将每个更新后的对象添加到新列表中。

性能和使用场景

  • 如果你只是想更新原有的对象(修改 Refund 对象的字段),直接使用 forEach 是一个比较简单的选择。

  • 如果你需要返回一个新的列表,并且不想修改原列表(或者需要保留原列表),可以选择使用 mapcollect

这两种方式都能有效地替代传统的 for 循环。如果你有其他的流式操作需求,Stream 提供了丰富的功能(如过滤、排序、映射等),使得代码更加简洁且具有更好的可维护性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词