Предполагая, что это использование логически (т. Е. Оно вычисляет желаемое логическое значение) правильно:
boolean matches = someObjectList
.stream()
.anyMatch(myObjType -> !myObjType.getSomeStatusString().equals("someStatus"));
как бы это сравнить с:
boolean matches = someObjectList
.stream()
.map(myObjType -> myObjType.getSomeStatusString())
.anyMatch(status -> !status.equals("someStatus"));
Одна форма объективно лучше, чем другой? Есть ли существенная разница в байт-коде? Является ли один анти-шаблон? Есть ли какой-нибудь оптимизатор Java, который делает один лучше другого? Меня не интересуют разногласия, основанные на мнении, такие как первое более читабельно, так как оно может отличаться от читателя к читателю ....