然后使用Java 8查找替换/添加

时间:2018-03-17 03:35:49

标签: java-8 java-stream

我是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"));
   }

0 个答案:

没有答案