You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Stream API实现Note类字段的批量映射赋值?

实现方案

你可以用Stream的forEach终端操作直接完成遍历赋值,效果和原有for循环完全一致:

public void function(int externalId) {
    Set<Note> notes = getFromRepository();
    notes.stream()
         .forEach(note -> {
             note.setId(externalId);
             note.setStatus("Open");
         });
}

如果你的JDK版本是8及以上,甚至可以省略stream()调用,直接调用Set自带的forEach方法,写法更简洁:

public void function(int externalId) {
    Set<Note> notes = getFromRepository();
    notes.forEach(note -> {
        note.setId(externalId);
        note.setStatus("Open");
    });
}

相关说明

  • 两种写法的执行逻辑、性能和原有增强for循环完全一致,都是遍历集合逐个修改对象属性
  • 不需要使用map中间操作:你不需要转换对象类型,只是做属性赋值这类消费型操作,直接用forEach即可
  • 如果后续需要返回修改后的Note集合,可以补充collect(Collectors.toSet())操作,当前需求不需要返回的话直接用forEach就满足要求

内容的提问来源于stack exchange,提问作者user13034249

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:36:05