java - 在 Java 8 Stream API 中使用条件修改数组列表
问题描述
你能帮我把下面的内容转换forEach
成Stream吗?
这是我的代码:
List<Addon> addonItems = <Some Addon List>
for (Addon addOn : addonItems) {
if (GeoCode.TRP.toString().equals(addonItems.getSomeCode())) {
addonItems.setName("Got from GOOGLE");
}
}
解决方案
您的示例代码实际上不会编译,但我会尝试回答您的问题...
addonItems.stream().filter(addonItem -> GeoCode.TRP.toString().equals(addonItem.getSomeCode()))
.forEach(addonItem -> addonItem.setName("Got from GOOGLE"));
这段代码所做的是流式处理 addonItems 列表中的元素,并根据我们的 lambda 过滤器表达式过滤 addonItems。它将在调用 forEach 时执行此流操作,并根据我们的过滤器表达式相应地设置每个 addonItem 的名称。
推荐阅读
- c# - RestSharp Google 的 OAuth
- .net - Installshield 2018 中的 .NET 托管 dll 自定义操作
- python - redis 锁定:redispy 与 python-redis-lock
- oracle-apex - 需要重定向到 Oracle 中的文件共享路径
- javascript - 带有复选框的样式下拉列表
- ms-access - 在单个子 MS Access 内的 2 段代码中使用相同的变量
- package - 当我对 Microsoft 包 C++ 一无所知时,如何安装 easyphp?
- flutter - 如果路径或名称文件中存在空格,则无法加载图像 Flutter
- javascript - 将自定义级别添加到 bunyan 实例
- symfony - 在 symfony 中的两个页面之间导航