Sobes.tech
Senior

Čo sú to medziľahlé a terminálne metódy v streamoch?

sobes.tech AI

Odpoveď od AI

V Java Stream API sú metódy rozdelené na medzičlánkové (intermediate) a terminálne (terminal).

  • Medzičlánkové metódy vracajú nový stream a umožňujú stavať reťazec operácií. Sú lenivé, teda sa nespúšťajú okamžite, ale až pri volaní terminálnej metódy. Príklady: filter(), map(), sorted(), distinct().

  • Terminálne metódy spúšťajú spracovanie streamu a vracajú výsledok (nie stream). Po ich volaní reťazec končí. Príklady: collect(), forEach(), reduce(), count().

Príklad:

List<String> names = List.of("Anna", "Bob", "Charlie", "David");

long count = names.stream()  // medzičlánková metóda stream()
    .filter(name -> name.length() > 3)  // medzičlánková metóda filter()
    .count();  // terminálna metóda count()

System.out.println(count);  // Vypíše počet mien dlhších ako 3 znaky