Sobes.tech
Middle

Ką daro collect metodas Java?

sobes.tech AI

Atsakymas iš AI

„collect“ metodas Java Stream API vykdo mutabilųjį sumažinimą (mutable reduction) srauto elementų į vieną rezultato objektą. Jis priima Collector kaip argumentą ir leidžia agreguoti duomenis įvairiais būdais, pavyzdžiui, surinkti elementus į kolekcijas, juos grupuoti arba taikyti agregavimo funkcijas (suma, vidurkis ir kt.).

Pagrindinės Collector sudedamosios dalys:

  • supplier(): Sukuria naują, tuščią rezultato konteinerį.
  • accumulator(): Prideda einamąjį srauto elementą į rezultato konteinerį.
  • combiner(): Sujungia du rezultato konteinerius (naudojama paraleliniuose srautuose).
  • finisher(): Atlieka galutinę transformaciją rezultato konteineryje (pasirinktinai).

Populiarios Collector įgyvendinimai yra pateikiami Collectors klasės:

  • toList(), toSet(), toMap(): Surenka elementus į atitinkamai List, Set, Map.
  • joining(): Sujungia eilutės elementus.
  • groupingBy(): Grupuoja elementus pagal nurodytą kriterijų.
  • counting(), summingInt(), averagingDouble(): Skaičiuoja, sumuoja, vidurkį skaičiuoja.

Pavyzdys, kaip surinkti į sąrašą:

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()); // Surinkti į sąrašą

        System.out.println(collectedNames);
    }
}