इस ट्यूटोरियल में, हम उदाहरणों की मदद से जावा संग्रह ढांचे द्वारा प्रदान किए गए विभिन्न एल्गोरिदम के बारे में जानेंगे।
जावा संग्रह फ्रेमवर्क विभिन्न एल्गोरिदम प्रदान करता है जिसका उपयोग डेटा संरचनाओं में संग्रहीत तत्वों में हेरफेर करने के लिए किया जा सकता है।
जावा में एल्गोरिदम स्थिर तरीके हैं जिनका उपयोग संग्रह पर विभिन्न कार्यों को करने के लिए किया जा सकता है।
चूंकि एल्गोरिदम का उपयोग विभिन्न संग्रहों पर किया जा सकता है, इसलिए इन्हें जेनेरिक एल्गोरिदम के रूप में भी जाना जाता है ।
आइए, संग्रह ढांचे में उपलब्ध विभिन्न तरीकों के कार्यान्वयन को देखें।
1. सॉर्टिंग सॉर्टिंग ()
sort()
संग्रह ढांचे द्वारा प्रदान की विधि तरह तत्वों के लिए प्रयोग किया जाता है। उदाहरण के लिए,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) )
आउटपुट
बिना पढ़े ArrayList: (4, 2, 3) सॉर्ट किए गए ArrayList: (2, 3, 4)
यहाँ छँटाई प्राकृतिक क्रम (आरोही क्रम) में होती है। हालाँकि, हम sort()
तुलनित्र इंटरफ़ेस का उपयोग करके विधि के क्रमबद्ध क्रम को अनुकूलित कर सकते हैं ।
अधिक जानने के लिए, Java Sorting पर जाएं।
2. फेरबदल का उपयोग कर फेरबदल ()
shuffle()
जावा संग्रह ढांचे की पद्धति का उपयोग डेटा संरचना में मौजूद किसी भी प्रकार के आदेश को नष्ट करने के लिए किया जाता है। यह छँटाई के ठीक विपरीत करता है। उदाहरण के लिए,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("Sorted ArrayList: " + numbers); // Using the shuffle() method Collections.shuffle(numbers); System.out.println("ArrayList using shuffle: " + numbers); ) )
आउटपुट
क्रमबद्ध ArrayList: (1, 2, 3) ArrayList का उपयोग कर फेरबदल: (2, 1, 3)
जब हम प्रोग्राम चलाते हैं, तो shuffle()
विधि एक यादृच्छिक आउटपुट लौटा देगी।
फेरबदल एल्गोरिथ्म मुख्य रूप से उन खेलों में उपयोग किया जाता है जहां हम यादृच्छिक आउटपुट चाहते हैं।
3. रूटीन डेटा हेरफेर
जावा में, संग्रह ढांचा विभिन्न तरीकों को प्रदान करता है जिनका उपयोग डेटा में हेरफेर करने के लिए किया जा सकता है।
reverse()
- तत्वों के क्रम को उलट देता हैfill()
- निर्दिष्ट मूल्य के साथ हर तत्व को एक संग्रह में बदलेंcopy()
- निर्दिष्ट स्रोत से गंतव्य तक तत्वों की एक प्रति बनाता हैswap()
- एक संग्रह में दो तत्वों की स्थिति स्वैपaddAll()
- एक संग्रह के सभी तत्वों को दूसरे संग्रह में जोड़ता है
उदाहरण के लिए,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // Using reverse() Collections.reverse(numbers); System.out.println("Reversed ArrayList1: " + numbers); // Using swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 using swap(): " + numbers); ArrayList newNumbers = new ArrayList(); // Using addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 using addAll(): " + newNumbers); // Using fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 using fill(): " + numbers); // Using copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 using copy(): " + newNumbers); ) )
आउटपुट
ArrayList1: (1, 2) उल्टे ArrayList1: (2, 1) ArrayList1 स्वैप का उपयोग करके (): (1, 2) ArrayList2 एडलल का उपयोग करके (): (1, 2, ArrayList1 फिल का उपयोग करके (): (0, 0) ArrayList2 का उपयोग कर। कॉपी (): (0, 0)
नोट : copy()
विधि निष्पादित करते समय दोनों सूची समान आकार की होनी चाहिए।
4. द्विआधारी खोज का उपयोग कर खोज ()
binarySearch()
जावा संग्रह ढांचे की विधि निर्दिष्ट तत्व की खोज करती है। यह निर्दिष्ट संग्रह में तत्व की स्थिति देता है। उदाहरण के लिए,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("The position of 3 is " + pos); ) )
आउटपुट
3 की स्थिति 2 है।
नोट : binarySearch()
विधि को करने से पहले संग्रह को क्रमबद्ध किया जाना चाहिए ।
अधिक जानने के लिए, जावा बाइनरी सर्च पर जाएं।
5. रचना
frequency()
- संग्रह में किसी तत्व के मौजूद होने की संख्या की गिनती लौटाता हैdisjoint()
- जाँच करता है कि दो संग्रह में कुछ सामान्य तत्व हैं या नहीं
उदाहरण के लिए,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList newNumbers = new ArrayList(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("Two lists are disjoint: " + value); ) )
आउटपुट
ArrayList1: (1, 2, 3, 2) 2 की संख्या: 2 ArrayList2: (5, 6) दो सूचियां हैं:
6. चरम मूल्यों की खोज
min()
और max()
जावा संग्रह ढांचे के तरीकों, न्यूनतम और अधिकतम तत्वों को खोजने के लिए क्रमश: उपयोग किया जाता है। उदाहरण के लिए,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using min() int min = Collections.min(numbers); System.out.println("Minimum Element: " + min); // Using max() int max = Collections.max(numbers); System.out.println("Maximum Element: " + max); ) )
आउटपुट
न्यूनतम तत्व: 1 अधिकतम तत्व: 3