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();