使用Java 8 Stream API中的条件修改数组列表

时间:2019-04-26 09:34:32

标签: java java-stream

您能否在这里帮助我,将下面的forEach转换为Stream。

这是我的代码:

List<Addon> addonItems = <Some Addon List>

for (Addon addOn : addonItems) {
    if (GeoCode.TRP.toString().equals(addonItems.getSomeCode())) {
        addonItems.setName("Got from GOOGLE");
    }
}

1 个答案:

答案 0 :(得分:0)

您的示例代码实际上不会编译,但我会尝试回答您的问题...

addonItems.stream().filter(addonItem -> GeoCode.TRP.toString().equals(addonItem.getSomeCode()))
    .forEach(addonItem -> addonItem.setName("Got from GOOGLE"));

此代码的作用是流化addonItems列表中的元素,并根据我们的lambda过滤器表达式对addonItems进行过滤。当调用forEach时,它将执行此流操作,并根据我们的过滤器表达式相应地设置每个addonItem的名称。