Senior
Co jsou to mezilehlé a terminální metody ve streamech?
sobes.tech AI
Odpověď od AI
V API Stream v jazyce Java jsou metody rozděleny na mezilehlé (intermediate) a terminální (terminal).
-
Mezilehlé metody vracejí nový stream a umožňují řetězení operací. Jsou líné, to znamená, že se nespouštějí ihned, ale pouze při volání terminální metody. Příklady:
filter(),map(),sorted(),distinct(). -
Terminální metody spouštějí zpracování streamu a vracejí výsledek (ne stream). Po jejich volání řetězec končí. Příklady:
collect(),forEach(),reduce(),count().
Příklad:
List<String> names = List.of("Anna", "Bob", "Charlie", "David");
long count = names.stream() // mezilehlá metoda stream()
.filter(name -> name.length() > 3) // mezilehlá metoda filter()
.count(); // terminální metoda count()
System.out.println(count); // Vytiskne počet jmen delších než 3 znaky