Sobes.tech
Middle

Co dělá metoda collect v Java?

sobes.tech AI

Odpověď od AI

Metoda collect v API Stream v jazyce Java provádí mutabilní redukci (mutable reduction) prvků proudu do jednoho výsledného objektu. Přijímá jako argument Collector a umožňuje agregaci dat různými způsoby, například shromažďováním prvků do kolekcí, jejich seskupováním nebo použitím agregačních funkcí (sčítání, průměr atd.).

Hlavní komponenty Collector:

  • supplier(): Vytvoří nový, prázdný kontejner výsledku.
  • accumulator(): Přidá aktuální prvek proudu do výsledného kontejneru.
  • combiner(): Sloučí dva výsledné kontejnery (používá se v paralelních proudech).
  • finisher(): Aplikuje konečnou transformaci na výsledný kontejner (volitelné).

Populární implementace Collector jsou poskytovány třídou Collectors:

  • toList(), toSet(), toMap(): Sbírá prvky do List, Set, Map.
  • joining(): Spojuje řetězce.
  • groupingBy(): Sesazuje prvky podle zadaného kritéria.
  • counting(), summingInt(), averagingDouble(): Počítání, sčítání, průměrování.

Příklad použití pro sběr do seznamu:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class CollectExample {

    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

        List<String> collectedNames = names.stream()
                                          .collect(Collectors.toList()); // Sběr do Listu

        System.out.println(collectedNames);
    }
}