arrays java 8 stream class
Java 8 जावा के इतिहास में एक प्रमुख रिलीज़ है। यह ट्यूटोरियल जावा 8 में विभिन्न बदलावों की व्याख्या करता है जैसे स्ट्रीम कक्षा और समानांतर क्रमबद्धता:
इस रिलीज़ में कई नई सुविधाओं को पेश किया गया था जैसा कि 'जावा 8 फीचर्स' पर हमारे पिछले ट्यूटोरियल में पहले ही चर्चा में है। आइए जावा 8 स्ट्रीम क्लास और समानांतर सॉर्टिंग विधि के बारे में जानें।
=> यहाँ सरल जावा प्रशिक्षण श्रृंखला देखें।
आप क्या सीखेंगे:
जावा 8 में पहुंचता है
Java8 ने विशेष रूप से सरणियों से संबंधित कुछ सुविधाएँ पेश कीं।
उसमे समाविष्ट हैं:
- Arrays के लिए स्ट्रीम
- समानांतर छँटाई
इस ट्यूटोरियल में, हम जावा 8 की इन दो विशेषताओं के बारे में विस्तार से चर्चा करेंगे।
जावा 8 स्ट्रीम
जावा 8 ने सरणियों के लिए एक स्ट्रीम वर्ग जोड़ा है जो पठनीयता के साथ-साथ सरणियों की दक्षता में सुधार करता है। सरणियों को स्ट्रीम में परिवर्तित करने से कार्यक्रम के समग्र प्रदर्शन में भी वृद्धि होती है।
इसके अतिरिक्त, आप विभिन्न स्ट्रीम एपीआई विधियों का भी उपयोग कर सकते हैं जो मैपिंग को सरल बना सकते हैं, और सरणियों पर फ़िल्टरिंग क्रिया कर सकते हैं।
एक सरणी को एक स्ट्रीम में बदलने के लिए निम्न विधि ओवरलोड का उपयोग किया जा सकता है ।
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
निम्नलिखित कार्यक्रम सरणियों के साथ धाराओं के उपयोग के कार्यान्वयन को दर्शाता है। यह प्रोग्राम Iterative अप्रोच और Streams एप्रोच की तुलना दिखाता है। बाद में, सरणी में तत्वों के योग की गणना Iteration और Streams का उपयोग करके की जाती है और औसत की गणना की जाती है।
import java.util.Arrays; class Main { public static void main(String() args) { int intArray() = {5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100}; //calculate sum using iterative method int sum = 0; for (int i = 0; i System.out.print(e + ' ')); } }
आउटपुट:
उपरोक्त आउटपुट औसत पुनरावृत्ति और धाराओं के दृष्टिकोण को दर्शाता है। जैसे-जैसे तत्व कम होते हैं, औसत समान होता है लेकिन जैसे-जैसे एरे में तत्व बढ़ते हैं, पुनरावृत्तियाँ धीमी होती जाती हैं।
अगला प्रोग्रामिंग उदाहरण दिखाता है कि किसी सरणी को पूर्णांक स्ट्रीम में कैसे परिवर्तित किया जाता है और फिर सरणी के तत्वों को यादृच्छिक मानों में मैप करने के लिए स्ट्रीम की मैप विधि का उपयोग करके और फिर इन तत्वों को जोड़ें। फिर कार्यक्रम पूर्णांक स्ट्रीम में सभी तत्वों का योग प्रिंट करता है ।
import java.util.Arrays; class Main { public static void main(String() args) { //declare array of ints int() ints = new int(100); //fill array with value 10 Arrays.fill(ints, 10); //maps array stream to random numbers and calculates sum of the elements int sum = Arrays.stream(ints) .map(i -> (int) (Math.random() * i)) .sum(); //print the sum System.out.println('The sum of the random array elements: ' + sum); } }
आउटपुट:
हमने मानचित्र विधि का उपयोग किया है जो कि उपरोक्त कार्यक्रम में स्ट्रीम वर्ग द्वारा प्रदान किया गया है। हमने योग () पद्धति का भी उपयोग किया है जो स्ट्रीम में तत्वों को जोड़ता है।
कैसे देखें
जावा 8 समांतर कोश () विधि
जावा में 8. 'समानांतरांतर ()' विधि पेश की गई है। यह java.util की एक विधि है। ऐरे क्लास। समानांतर शैली में एक सरणी को सॉर्ट करने के लिए समानांतरसॉर्ट विधि का उपयोग किया जाता है। यह कांटा का उपयोग करता है और दृष्टिकोण में शामिल होता है जिसमें सरणियों को छोटी इकाइयों में कांटा जाता है जब तक कि प्रत्येक इकाई आसानी से प्रबंधनीय नहीं होती है और फिर व्यक्तिगत रूप से छंटनी होती है।
फिर छोटी इकाइयां एक साथ जुड़ जाती हैं और यह पूरा ऑपरेशन समानांतर में होता है। इस समांतर विधि का एक प्रमुख लाभ यह है कि यह मल्टीथ्रेडिंग का उपयोग करता है जिससे तेजी से और कुशल छँटाई होती है।
समांतर कोश () विधि में निम्नलिखित अधिभार हैं:
public static void parallelSort (Object obj())
उपरोक्त विधि प्रोटोटाइप का उपयोग आरोही क्रम में एक सरणी को सॉर्ट करने के लिए किया जाता है।
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
उपरोक्त अधिभार का उपयोग निर्दिष्ट रेंज में तत्वों को nd fromIndex ’से‘ toIndex ’सरणी में करने के लिए किया जाता है।
निम्न जावा प्रोग्राम एक सरणी को सॉर्ट करने के लिए समानांतरसंस्कृति विधि प्रदर्शित करता है।
import java.util.Arrays; public class Main { public static void main(String() args) { // Creating an array int numArray() = { 54,34,25,13,65,37,85,47,26 }; // print the original Array System.out.print('Original Unsorted Array: '); // iterate the array using streams Arrays.stream(numArray) .forEach(num ->System.out.print(num + ' ')); System.out.println(); // Using parallelSort() method to sort array Arrays.parallelSort(numArray); // Print sorted Array System.out.print('Array sorted using parallelSort: '); Arrays.stream(numArray) .forEach(num->System.out.print(num + ' ')); } }
आउटपुट:
उपरोक्त कार्यक्रम में, इनपुट सरणी को समानांतर पोर्ट विधि का उपयोग करके सॉर्ट किया जाता है और आउटपुट प्रिंट किया जाता है।
अगला कार्यक्रम एरेस वर्ग द्वारा प्रदान की जाने वाली दो छँटाई विधियों की तुलना करता है अर्थात् सॉर्ट () विधि जो एक रैखिक छँटाई और समांतर () पद्धति है। यह प्रोग्राम किसी सरणी को सॉर्ट करने के लिए प्रत्येक विधि द्वारा लिए गए समय की तुलना करता है । समय की गणना प्रत्येक पुनरावृत्ति के लिए की जाती है।
import java.util.Arrays; import java.util.Random; public class Main { public static void main(String() args) { // Create an array int numArray() = new int(100); System.out.println('Iteration#' + ' ' + 'Serial Sort :Time(in ns)' + ' ' + 'Parallel Sort :Time(in ns)'); // Iterating Loop till i = 1000 // with interval of 10 for (int i = 0; i <100; i += 10) { System.out.print(' ' + (i / 10 + 1) + ' '); // Array generation using random function Random rand = new Random(); for (int j = 0; j < 100; j++) { numArray(j) = rand.nextInt(); } // Arrays.sort() method: Start and End Time long startTime = System.nanoTime(); // Call Serial Sort method Arrays.sort Arrays.sort(numArray); long endTime = System.nanoTime(); // Print Serial Sort results System.out.print((endTime - startTime) + ' '); // Arrays.parallelSort() start and end time startTime = System.nanoTime(); // call Parallel Sort method Arrays.parallelSort Arrays.parallelSort(numArray); endTime = System.nanoTime(); // Print Parallel Sort results System.out.println(' ' + (endTime - startTime)); System.out.println(); } } }
आउटपुट:
उपरोक्त आउटपुट प्रत्येक पुनरावृत्ति के लिए सॉर्ट और समांतरSort विधियों द्वारा लिए गए समय की तुलना दर्शाता है। आप सॉर्ट और पैरेललशॉट विधि के प्रदर्शन के बीच स्पष्ट अंतर को देख सकते हैं।
बार बार पूछे जाने वाले प्रश्न
Q # 1) जावा में Arrays स्ट्रीम क्या है?
उत्तर: यह Arrays वर्ग की धारा विधि है। यह विधि धारा (T () सरणी) सरणी से अनुक्रमिक धारा लौटाती है।
Q # 2) जावा में स्ट्रीम () क्या है?
उत्तर: जावा में स्ट्रीम () को पहली बार जावा 8. में पेश किया गया था। स्ट्रीम क्लास में एपीवाई शामिल है जो कि सरणियों सहित संग्रह वस्तुओं के प्रसंस्करण के लिए उपयोग किया जाता है।
Q # 3) जावा स्ट्रीम कैसे काम करता है?
उत्तर: जावा स्ट्रीम के एपीआई में एक ऐसा तंत्र होता है जो संग्रह जैसे ArrayList, Arrays आदि को स्ट्रीम में बदल सकता है। वे इन धाराओं के प्रत्येक तत्व को विभिन्न तरीकों और प्रदान किए गए परिणामों का उपयोग करके समानांतर में संसाधित करते हैं।
Q # 4) जावा 8 में स्ट्रीम के एमएपी विधि का उद्देश्य क्या है?
उत्तर: नक्शा विधि java.util.stream.treams वर्ग की है। मानचित्र विधि किसी धारा के प्रत्येक तत्व पर एक फ़ंक्शन लागू करती है या इसे एक अलग मूल्य पर मैप करती है और इसे बदल देती है।
Q # 5) क्या लूप जावा की तुलना में स्ट्रीम तेज है?
उत्तर: हाँ, विशेष रूप से समानांतर धाराएँ। उदाहरण के लिए, समानांतर धाराओं का उपयोग करने वाली एरेस वर्ग की समानांतर विधि एरेस वर्ग द्वारा प्रदान की अनुक्रमिक सॉर्ट विधि की तुलना में तेज है।
निष्कर्ष
जावा में स्ट्रीम एक नई सुविधा है, जिसमें जावा 8 शामिल है। स्ट्रीम एक स्ट्रिंग एपीआई प्रदान करती हैं, जिनके तरीकों का उपयोग जावा में संग्रह पर किया जा सकता है। इस ट्यूटोरियल में, हमने स्ट्रीम मेथड्स को देखा है जो जावा एरेज़ पर काम करते हैं। हमने अन्य विशेषताओं को भी देखा है जो जावा 8 संस्करण में जावा सरणियों में जोड़े गए थे।
उनमें से एक धारा है जबकि दूसरी समानांतरांतर विधि है जो एक सरणी को समानांतर तरीके से सॉर्ट करती है। यह विधि लीनियर मेथड सॉर्ट की तुलना में तेज़ है, जो उस कार्यक्रम में स्पष्ट था जहाँ हमने दोनों विधियों की तुलना की।
यह भी पढ़ें = >> Java 8 में इंटरफ़ेस परिवर्तन
=> एक्सक्लूसिव जावा ट्रेनिंग ट्यूटोरियल सीरीज़ के लिए यहां जाएं।
अनुशंसित पाठ
- जावा डाटाटेप्स, लूप्स, एरेस, स्विच एंड एसेसरीज
- MongoDB सॉर्ट () उदाहरण के साथ विधि
- जावा कॉपी ऐरे: जावा में एक ऐरे को कैसे कॉपी / क्लोन करें
- जावा जेनेरिक एरे - जावा में जेनेरिक एरे को कैसे अनुकरण करें?
- जावा में बहुआयामी एरर (2 डी और 3 डी एरेज़ जावा में)
- उदाहरण के साथ जावा इंटरफेस और एब्सट्रैक्ट क्लास ट्यूटोरियल
- जावा में एक ऐरे को कैसे सॉर्ट करें - उदाहरणों के साथ ट्यूटोरियल
- जावा में स्टेटिक कीवर्ड क्या है?