使用匹配属性更新列表中元素的属性

时间:2018-03-14 10:56:59

标签: java-8 java-stream

我是Java 8的新手。我有一个A类对象列表,其中A的结构如下:

class A {
   int name,
   boolean isActive
}

现在我有一个A类元素L的列表,在该列表中我想要更新一个名为=“test”且inactive为false的元素。

我可以通过编写for循环并创建新列表来轻松完成此任务。

但是我如何使用Java 8流API做到这一点?

2 个答案:

答案 0 :(得分:3)

你可以这样做。

L.stream()
.filter(item-> item.getName().equals("test"))
.forEachOrdered(a -> a.setActiv(false));

我认为您的问题中的名称数据类型应为String而不是int

答案 1 :(得分:0)

yourList.replaceAll(x -> {
    if(x.getName().equals("SomeName")){
        x.setIsActive(false);
        return x;
    }
    return x;
})