Sobes.tech
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