您能否在这里帮助我将下面的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的名称。

10-07 13:06