Оптимизация Java 8 Stream - PullRequest
       17

Оптимизация Java 8 Stream

0 голосов
/ 24 июня 2019

У меня есть нижеприведенная кодовая база, которая используется для поиска любого подходящего объекта и сбоя его состояния. Какой самый простой способ реализации приведенного ниже кода

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

Использование

final Integer integer = counterList.stream()
       .filter(customer -> "DONE".equals(customer.getDue()))
       .map(DummyCounter::getStatus)
       .filter(Objects::nonNull)
       .findAny()
       .get();

System.out.println(integer);

1 Ответ

0 голосов
/ 24 июня 2019

Чтобы найти все ошибочные записи, вы можете сделать следующее:

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