IntelliJ IDEA polecił mi właśnie teraz, aby zastąpić następującą pętlę dla każdej z wywołań Java 8 „forEach”:
for (Object o : objects) {
if (o instanceof SomeObject) {
doSomething();
}
}
Zalecane połączenie wygląda następująco:
objects.stream().filter(o -> o instanceof SomeObject).forEach(o -> doSomething());
O ile nie rozumiem, jak działa podstawowa funkcjonalność Stream, wydaje mi się, że użycie stream jest operacją O (2n) w przeciwieństwie do operacji O (n) dla standardowej pętli dla każdej pętli.