Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java8流优化_Java_Optimization_Java 8_Java Stream_Simplify - Fatal编程技术网

Java8流优化

Java8流优化,java,optimization,java-8,java-stream,simplify,Java,Optimization,Java 8,Java Stream,Simplify,我有一个下面的代码库,用于查找任何匹配对象及其状态失败,实现下面代码的最简单方法是什么 DummyCounter dummyCounter=new DummyCounter(); dummyCounter.setDue("DONE"); dummyCounter.setStatus(1); DummyCounter dummyCounte1=new DummyCounter(); dummyCounte1.setDue("FAILRUE"); dummyCounte1.setStatus(1)

我有一个下面的代码库,用于查找任何匹配对象及其状态失败,实现下面代码的最简单方法是什么

DummyCounter dummyCounter=new DummyCounter();
dummyCounter.setDue("DONE");
dummyCounter.setStatus(1);

DummyCounter dummyCounte1=new DummyCounter();
dummyCounte1.setDue("FAILRUE");
dummyCounte1.setStatus(1);

DummyCounter dummyCounte2=new DummyCounter();
dummyCounte2.setDue("DONE");
dummyCounte2.setStatus(1);

List<DummyCounter>  counterList=new ArrayList<DummyCounter>();
counterList.add(dummyCounter);
counterList.add(dummyCounte2);
counterList.add(dummyCounte2);

要查找所有失败的条目,您可以执行以下操作:

List<DummyCounter> failedDummies = counterList.stream()
      .filter(dummy-> "FAILURE".equals(dummy.getDue()))
      .collect(Collectors.toList());

我不认为需要
.filter(Objects::nonNull)
。。。至少在您的示例中,状态始终设置为
1
。在此示例中,您最好使用
枚举作为到期日,而不是
字符串。这可能会让你避免像“失败”这样的错误。。。
List<DummyCounter> failedDummies = counterList.stream()
      .filter(dummy-> "FAILURE".equals(dummy.getDue()))
      .collect(Collectors.toList());
int totalFailedCounters = counterList.stream()
          .filter(dummy-> "FAILURE".equals(dummy.getDue()))
          .collect(Collectors.toList()).size();