पाठ 3 / 38

Stream API

filter, map व reduce से कलेक्शन पर घोषणात्मक पाइपलाइन बनाएँ, groupingBy जैसे Collectors से परिणाम एकत्र करें, और जानें parallelStream कब मदद करता है।

स्रोत, मध्यवर्ती, टर्मिनल

पाइपलाइन में स्रोत, शून्य या अधिक लेज़ी मध्यवर्ती ऑपरेशन, और एक टर्मिनल ऑपरेशन होता है जो निष्पादन शुरू करता है।

एक वास्तविक पाइपलाइन

Collectors परिणाम बनाते हैं: toList, groupingBy, joining, summingInt आदि।

Map<Dept, List<String>> byDept = employees.stream()
    .filter(e -> e.salary() > 50_000)
    .sorted(Comparator.comparing(Employee::name))
    .collect(Collectors.groupingBy(
        Employee::dept,
        Collectors.mapping(Employee::name, Collectors.toList())));

parallelStream() सावधानी से

parallelStream() बड़े, CPU-बाउंड, साइड-इफ़ेक्ट-मुक्त काम पर ही मदद करता है; छोटे डेटा पर धीमा।