Рабочим решением было бы сделать:
Код: Выделить всё
boolean hasCivic = reportElements.stream()
.filter(car -> "Civic".equals(car.getModel()))
.findFirst()
.isPresent();
boolean hasFocus = reportElements.stream()
.filter(car -> "Focus".equals(car.getModel()))
.findFirst()
.isPresent();
return hasCivic && hasFocus;
Есть ли способ однократно обработать поток найти, есть ли в списке автомобиль Civic и Focus?
Ключевая проблема с некоторыми из предоставленных решений заключается в том, что они гарантируют O(n), тогда как мое решение может быть выполнено сразу после два сравнения. Если мой список автомобилей составит, скажем, 10 миллионов машин, это приведет к очень значительным потерям производительности. Однако мое решение кажется неправильным, но, возможно, это лучшее решение с точки зрения производительности...
Подробнее здесь: https://stackoverflow.com/questions/456 ... ents-in-it
Мобильная версия