उदाहरण
import java.util.*;
public class Demo {
public static void main(String[] args) {
List myList = new ArrayList<>();
myList.add(11);
myList.add(35);
myList.add(56);
myList.add(78);
myList.add(91);
System.out.println(sum(myList));
}
public static int sum(List myList) {
System.out.println("मुख्य फंक्शन में, फिल्टर के साथ सूची का योग है: ");
return myList.stream()
.filter(i -> i > 5)
.mapToInt(i -> i)
.sum();
}
}
आउटपुट
मुख्य फंक्शन में, फिल्टर के साथ सूची का योग है: 271
व्याख्या: Demo क्लास में मुख्य फंक्शन होता है जो एक ArrayList बनाता है। 'add()' फंक्शन का उपयोग करके ऐरेलिस्ट में तत्व जोड़े जाते हैं। सूची के सभी तत्वों का योग 'sum' फंक्शन का उपयोग करके स्क्रीन पर प्रिंट किया जा सकता है। 'sum' नामक एक अन्य फंक्शन परिभाषित किया जाता है जो मान को इंटीजर में मैप करके फिल्टर्ड आउटपुट लौटाता है।
स्ट्रीम API व्याख्या:
myList.stream() // स्ट्रीम बनाएं
.filter(i -> i > 5) // 5 से बड़े तत्व रखें
.mapToInt(i -> i) // Integer को int में बदलें (IntStream)
.sum(); // योग की गणना करें
अन्य उपयोगी स्ट्रीम ऑपरेशन्स:
| ऑपरेशन | उदाहरण | विवरण |
|---|---|---|
| फिल्टर | .filter(x -> x > 10) | शर्त के आधार पर तत्व रखें |
| मैप | .map(String::length) | प्रत्येक तत्व को बदलें |
| फ्लैटमैप | .flatMap(List::stream) | नेस्टेड संरचनाओं को फ्लैट करें |
| डिस्टिंक्ट | .distinct() | डुप्लिकेट हटाएं |
| सॉर्टेड | .sorted() | क्रमबद्ध करें |
| लिमिट | .limit(5) | पहले n तत्व लें |
| स्किप | .skip(2) | पहले n तत्व छोड़ें |
| रिड्यूस | .reduce(0, Integer::sum) | कस्टम रिडक्शन |
समानांतर स्ट्रीम:
// बड़ी सूचियों के लिए समानांतर प्रसंस्करण
int sum = myList.parallelStream()
.filter(i -> i > 5)
.mapToInt(i -> i)
.sum();
Collectors के साथ:
// योग के अलावा अन्य संग्रह
List filtered = myList.stream()
.filter(i -> i > 5)
.collect(Collectors.toList());
int count = myList.stream()
.filter(i -> i > 5)
.collect(Collectors.counting());