JShell जावा 9 में पेश किया गया एक टूल है, और यह अभिव्यक्तियों, चरों, विधियों, कक्षाओं आदि जैसे सरल कथनों को इनपुट के रूप में स्वीकार करता है और तत्काल परिणाम देता है।
एक स्ट्रीम मानों का एक क्रम है। एक इंटरमीडिएट स्ट्रीम ऑपरेशन एक ऐसा ऑपरेशन है जो एक स्ट्रीम लेता है। उदाहरण के लिए, इसे एक लैम्ब्डा अभिव्यक्ति पर लागू किया जा सकता है और इसके परिणाम के रूप में तत्वों की एक और स्ट्रीम उत्पन्न करता है।
सबसे लोकप्रिय इंटरमीडिएट स्ट्रीम ऑपरेशन नीचे दिए गए हैं:
- 1) sorted(): यह विधि उपभोग की गई स्ट्रीम के तत्वों को परिणाम के रूप में संरक्षित करती है लेकिन उन्हें प्राकृतिक क्रमबद्ध क्रम में भी रखती है।
- 2) distinct(): यह विधि इनपुट स्ट्रीम के केवल अद्वितीय तत्वों को बनाए रखते हुए एक स्ट्रीम लौटाती है, और यह बनाए रखे गए तत्वों के सापेक्ष क्रम को बनाए रख सकती है।
- 3) filter(): इस विधि का उपयोग कुछ तर्क के आधार पर स्ट्रीम तत्वों को फ़िल्टर करने के लिए किया जा सकता है।
- 4) map(): यह विधि इनपुट स्ट्रीम तत्वों से नए परिणामों की गणना करने के लिए लैम्ब्डा अभिव्यक्ति लागू करती है। फिर, यह इन परिणामों की एक स्ट्रीम को आउटपुट के रूप में लौटाती है।
नीचे दिए गए कोड स्निपेट में, हम JShell टूल में विभिन्न इंटरमीडिएट स्ट्रीम ऑपरेशन लागू कर सकते हैं।
स्निपेट
jshell> List<Integer> numbers = List.of(3, 10, 23, 200, 77, 9, 32); numbers ==> [3, 10, 23, 200, 77, 9, 32] jshell> numbers.stream().sorted().forEach(elem -> System.out.println(elem)); 3 9 10 23 32 77 200 jshell> List<Integer> numbers = List.of(3, 5, 54, 280, 5, 9, 40); numbers ==> [3, 5, 54, 280, 5, 9, 40] jshell> numbers.stream().distinct().forEach(elem -> System.out.println(elem)); 3 5 54 280 9 40 jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem)); 3 5 9 40 54 280 jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem)); 9 25 2916 78400 81 1600