Sobes.tech
Middle

Методи collect дар Java чӣ мекунад?

sobes.tech AI

Ҷавоб аз AI

Раванди collect дар API-и Stream-и Java иҷрои кумулятивии тағйирпазири (mutable reduction) элементҳои ҷараёнро ба як объекти натиҷавӣ анҷом медиҳад. Он Collector-ро ҳамчун аргумент қабул мекунад ва имкон медиҳад, ки маълумотро ба роҳҳои гуногун ҷамъоварӣ, гурӯҳбандӣ ё истифодаи функсияҳои ҷамъоварӣ (ҷамъ, миёна ва ғайра) анҷом диҳад.

Компонентҳои асосии Collector:

  • supplier(): Як контейнери нав ва холӣ барои натиҷа месозад.
  • accumulator(): Элементҳои ҷараёнро ба контейнери натиҷа илова мекунад.
  • combiner(): Ду контейнери натиҷаиро якҷоя мекунад (дар ҷараёнҳои параллелӣ истифода мешавад).
  • finisher(): Трансформатсияи ниҳоиро ба контейнери натиҷа татбиқ мекунад (ихтиёрӣ).

Имплементацияҳои маъмулӣ барои Collector тавассути синфи Collectors пешниҳод мешаванд:

  • toList(), toSet(), toMap(): Элементҳоро ба таври мувофиқ ба List, Set, Map ҷамъ мекунанд.
  • joining(): Элементҳои string-ро пайваст мекунад.
  • groupingBy(): Элементҳоро мувофиқи меъёр гурӯҳбандӣ мекунад.
  • counting(), summingInt(), averagingDouble(): Шумор, ҷамъкунӣ, миёнагирӣ.

Масалан барои ҷамъоварӣ ба рӯйхат:

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()); // Ҷамъоварӣ ба рӯйхат

        System.out.println(collectedNames);
    }
}