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

Java 8 使用匹配属性更新列表中元素的属性,java-8,java-stream,Java 8,Java Stream,我不熟悉Java8。我有一个a类对象列表,其中a的结构如下: class A { int name, boolean isActive } 现在我有一个a类元素L的列表,在该列表中,我想用inactive=false更新name=“test”的元素 通过编写for循环并创建一个新列表,我可以很容易地做到这一点 但是,我如何使用Java8流API做到这一点呢?您可以这样做 L.stream() .filter(item-> item.getName().equals("test

我不熟悉Java8。我有一个a类对象列表,其中a的结构如下:

class A {
   int name,
   boolean isActive
}
现在我有一个a类元素L的列表,在该列表中,我想用inactive=false更新name=“test”的元素

通过编写for循环并创建一个新列表,我可以很容易地做到这一点


但是,我如何使用Java8流API做到这一点呢?

您可以这样做

L.stream()
.filter(item-> item.getName().equals("test"))
.forEachOrdered(a -> a.setActiv(false));
我认为在您的问题中,名称的数据类型应该是
String
而不是
int

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