我是Java 8的新手。我有一个A类元素列表如下:
class A {
String name,
boolean isActive
}
根据我的用例,如果有任何输入元素e,我将首先检查是否存在与e同名且isActive = false的现有元素,然后我们将使用设置isActive = true替换该元素,否则我们将添加新元素e。
我可以通过编写一个for循环来查找是否存在任何元素,然后替换/添加。但是,我们可以使用java 8一步完成这两项吗?
编辑:我写的代码如下:
A a = aList.stream()
.filter(item -> item.getName().equalsIgnoreCase(input.getName())).findFirst()
.orElse(null);
if (a == null) {
aList.add(a.builder().isActive("true").name(input.getName).build());
} else {
aList.stream()
.filter(item -> item.getName().equalsIgnoreCase(input.getName()))
.forEach(a -> a.setIsActive("true"));
}