Hej. Dowiedziałem się, czym są strumienie i lambda, a teraz chciałbym zastosować tę wiedzę w praktyce. Moje pytanie brzmi: czy warto w prostych metodach stosować strumienie i co jest tzw. dobrą praktyką? Na przykład moja stara metoda wyglądała tak:
@Override
public Dog oneDog(String name) {
Dog oneDog = null;
for (Dog dog : allDogs()) {
if (dog.getName().equalsIgnoreCase(name)) {
oneDog = dog;
}
}
return oneDog;
}
nowa wygląda tak:
@Override
public Dog oneDog(String name) {
return allDogs().stream().filter(dog -> dog.getName().equalsIgnoreCase(name)).findAny().get();
}
Mniej kodu, który jest chyba nawet czytelniejszy. Znalazłem w internecie porównanie:
https://blog.jooq.org/2015/12/08/3-reasons-why-you-shouldnt-replace-your-for-loops-by-stream-foreach/
Wygląda na to, że Stream.forEach jest wolniejsze od zwykłej pętli for. Czy coś w tym temacie się zmieniło?
Ogólnie lambda jest super! :D