Tengo una ArrayList que está poblada por un número aleatorio de GameObj
casos cada vez que se ejecuta el programa.
Si un objeto se pone en contacto con otro objeto en el ArrayList, fijará un valor lógico llamado visible
de true
a false
.
¿Hay una manera de comprobar si todas las instancias elemento de la ArrayList se han establecido a false
través de:
XXXX.visible = false
Una vez que puedo comprobar si se ajustan a false
.
Se puede utilizar Stream.noneMatch()
para hacer esto:
if (bricks.stream().noneMatch(GameObj::isVisible)) {
doStuffIfAllBricksAreInvisible();
}
Esto devuelve cierto, si todos los ladrillos son invisibles.
Además se lo recomendaría a echar un vistazo a Stream.allMatch()
, que devuelve verdadero si todos los elementos de la lista coincide con el predicado dado.
Usando allMatch()
este sería el siguiente:
if (bricks.stream().allMatch(b -> !b.isVisible())) {
doStuffIfAllBricksAreInvisible();
}
Para completar esto, también se puede echar un vistazo a Stream.anyMatch()
, que devuelve cierto, si uno de los elementos coincide con el predicado dado.