Оптимизируйте использование потоков, чтобы проверить, соответствует ли какой-либо элемент двум условиям. ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Оптимизируйте использование потоков, чтобы проверить, соответствует ли какой-либо элемент двум условиям.

Сообщение Anonymous »

Как использовать потоки Java 8 для оптимизации следующего кода? Дважды использовать AnyMatch не имеет смысла.
boolean isRoleOld,isRoleNew;
for (Relations relation : listOfRelations)
{
if (Constants.ROLE_OLD.equalsIgnoreCase(relation.getRole()))
{
isRoleOld = true;
}
if (Constants.ROLE_NEW.equalsIgnoreCase(relation.getRole()))
{
isRoleNew = true;
}
}

if (isRoleOld && isRoleNew)
{
"Success"
}else{
throw Exception();
}

На данный момент я сделал следующее:
if (listOfRelations.stream()
.anyMatch(relation -> Constants.ROLE_OLD.equalsIgnoreCase(relation.getRole()))
&&
listOfRelations.stream()
.anyMatch(relation -> Constants.ROLE_NEW.equalsIgnoreCase(relation.getRole())))
{
System.out.println("Success");
}


Подробнее здесь: https://stackoverflow.com/questions/702 ... conditions

Вернуться в «JAVA»