findFirstreturns Optionaldescribing the first element of this stream, or empty Optional if the stream is empty.
, Optional , map. orElseGet , Optional . ,
foo.stream()
.filter(p -> p.someField == someValue)
.findFirst().map(p -> {
p.someField = anotherValue;
someBoolean = true;
return p;
}).orElseGet(() -> {
P p = new P();
p.someField = evenAnotherValue;
someBoolean = false;
return p;
});