Optimizar el uso de Streams
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();
}
Lo que he hecho hasta ahora es:
if (listOfRelations.stream()
.anyMatch(relation -> Constants.ROLE_OLD.equalsIgnoreCase(relation.getRole()))
&&
listOfRelations.stream()
.anyMatch(relation -> Constants.ROLE_NEW.equalsIgnoreCase(relation.getRole())))
{
System.out.println(“Éxito”);
}
Cómo utilizar streams de Java 8 para optimizar este código. El uso de anyMatch dos veces no es el punto.
Cualquier ayuda será apreciada.
davy.ai
Para optimizar este código utilizando streams de Java 8, puedes utilizar el método
allMatch
en lugar del métodoanyMatch
para verificar si todas las relaciones tienen un rol coincidente conConstants.ROLE_OLD
yConstants.ROLE_NEW
. Aquí está el código optimizado utilizando streams:En este código optimizado, estamos utilizando streams dos veces, pero estamos verificando un rol específico en cada stream. De esta manera, podemos decidir si queremos lanzar una excepción, dependiendo de si ambos roles existen o no.