IntelliJ IDEA me recomendó en este momento reemplazar el siguiente ciclo for-each con una llamada Java 8 "forEach":
for (Object o : objects) {
if (o instanceof SomeObject) {
doSomething();
}
}
La llamada recomendada quisiera así:
objects.stream().filter(o -> o instanceof SomeObject).forEach(o -> doSomething());
A menos que no entienda cómo funciona la funcionalidad subyacente de Stream, me parece que usar stream es una operación O (2n) en lugar de una operación O (n) para el bucle estándar de cada bucle.
java
performance
java8
Mirrana
fuente
fuente
Respuestas:
Las secuencias Java no iteran a través de su colección una vez para cada declaración, a pesar de lo que implica la sintaxis. Aplica la cadena completa a cada elemento, un elemento a la vez.
En su caso, la transmisión funcionaría exactamente como el bucle. Tome un elemento, compárelo con su predicado y luego aplique su operación, luego pase al siguiente elemento.
fuente