क्या आप किसी सरणी का उपयोग करने से पहले उसके आकार की घोषणा करते-करते थक गए हैं? आप केवल एक ही नहीं हैं, क्योंकि यह परिभाषित करना हमेशा सुविधाजनक नहीं होता है कि उस सरणी में मान जोड़ना शुरू करने से पहले किसी सरणी को कितने मानों को संग्रहीत करना चाहिए।
यहीं पर हमारा सहायक मित्र, Java ArrayList आता है।
इस गाइड में, हम इस बारे में बात करने जा रहे हैं कि ArrayLists क्या हैं, वे कैसे काम करते हैं, और वे पारंपरिक सरणियों की तुलना कैसे करते हैं। ArrayList वर्ग के साथ प्रभावी ढंग से काम करने के लिए हम उन सबसे महत्वपूर्ण विधियों के बारे में भी जानेंगे जिनके बारे में आपको जानना आवश्यक है। चलिए शुरू करते हैं!
एक ArrayList क्या है?
एक ArrayList एक विशेष प्रकार की सूची है जो आपको आकार बदलने योग्य सरणियाँ बनाने की अनुमति देती है। ArrayList वर्ग सूची इंटरफ़ेस को लागू करता है, जिसका उपयोग ऑर्डर किए गए डेटा को संग्रहीत करने के लिए किया जाता है।
जब आप जावा में एक सरणी के साथ काम कर रहे होते हैं, तो आपको उस सरणी के भीतर मूल्यों को संग्रहीत करने से पहले उस सरणी के आकार की घोषणा करनी होगी। अक्सर ऐसा होता है कि आप यह नहीं जानते हैं कि आप इसे घोषित करने से पहले एक सरणी में कितने मान संग्रहीत करना चाहते हैं, जो एक समस्या प्रस्तुत करता है।
ArrayList वर्ग आपको एक सरणी को परिभाषित करने की अनुमति देता है जिसे यह बताने की आवश्यकता नहीं है कि यह कितने मान संग्रहीत कर सकता है। ArrayLists, जिन्हें कभी-कभी dynamic arrays
के रूप में संदर्भित किया जाता है , जब आप तत्वों को जोड़ते या हटाते हैं तो उनकी क्षमता बदल सकते हैं।
एक ArrayList कैसे बनाएं
आइए स्पष्ट स्थान पर आरंभ करें:एक ArrayList घोषित करना। किसी एक को सेट करना आपके द्वारा किसी सरणी को घोषित करने के तरीके से काफी भिन्न है, क्योंकि यह जावा सूची इंटरफ़ेस का उपयोग करता है।
एक जावा फ़ाइल खोलें और निम्नलिखित कोड को अपनी मुख्य कक्षा में पेस्ट करें:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
import java.util.ArrayList;ArrayListsong =new ArrayList<>();
हमने अभी हाल ही में songs
. नामक एक सरणी सूची बनाई है . String
डेटा के प्रकार को संदर्भित करता है जो हमारे सरणी में संग्रहीत किया जाएगा और ArrayList उस ऑब्जेक्ट के प्रकार को संदर्भित करता है जिसे हम बनाना चाहते हैं।
हमें अपने कोड में ArrayList को आयात करना होगा क्योंकि यह जावा से आता है util
पुस्तकालय।
यह ध्यान देने योग्य है कि आप आदिम डेटा प्रकारों का उपयोग करके सरणी सूचियाँ नहीं बना सकते हैं। उदाहरण के लिए, यदि आप पूर्णांकों की एक सरणी घोषित करना चाहते हैं, तो आप आदिम int
का उपयोग नहीं कर सकते प्रकार; आपको पूर्णांक वर्ग का उपयोग करने की आवश्यकता होगी।
ध्यान दें कि हमें यह निर्दिष्ट करने की आवश्यकता नहीं है कि हमारे ArrayList को कितने मूल्यों को संग्रहीत करने की आवश्यकता है। ऐसा इसलिए है क्योंकि ArrayLists
गतिशील हैं।
ऐरेलिस्ट में एलीमेंट कैसे जोड़ें
ऐड () विधि आपको अपनी सूची में एक तत्व जोड़ने देती है। मान लें कि हम अपने songs
. में दो गाने जोड़ना चाहते हैं सरणी सूची:मुझे प्यार करो और मदद करो! (जो दोनों बीटल्स द्वारा हैं)।
एक नई जावा फ़ाइल खोलें और निम्नलिखित कोड में लिखें:
हमारा कोड रिटर्न:गाने:[लव मी डू, हेल्प!]
सरणियों की तरह, एक ArrayList
में आइटम अपने स्वयं के सूचकांक संख्या दी जाती है। ऐसा इसलिए है क्योंकि ArrayList में आइटम ऑर्डर किए जाते हैं और संख्याएं हमारे प्रोग्राम को बताती हैं कि हमारी सूची में प्रत्येक आइटम किस क्रम में प्रदर्शित होना चाहिए। यदि आवश्यक हो, तो आप उस अनुक्रमणिका स्थिति को निर्दिष्ट कर सकते हैं जिसमें आप कोई आइटम जोड़ना चाहते हैं:
songs.add(0, “Love Me Do”);
यह हमारे songs
. में इंडेक्स पोजीशन 0 पर एंट्री "लव मी डू" को जोड़ देगा सूची।
ऐरेलिस्ट को इनिशियलाइज़ करें
जब आप एक सरणी घोषित करते हैं, तो आप उस सरणी को निर्दिष्ट करने के लिए इच्छित मान निर्दिष्ट करके इसे सीधे प्रारंभ कर सकते हैं। ArrayLists
इस तरह से काम न करें। ArrayList. asList()
एक सूची के रूप में एक सरणी देता है जिसे ArrayList वर्ग द्वारा पढ़ा जा सकता है।
यदि आप पहले से ही कुछ मान प्राप्त कर चुके हैं जिन्हें आप अपनी सूची में जोड़ना चाहते हैं, तो आप मानों के साथ एक ArrayList प्रारंभ करना चाह सकते हैं।
आप प्रत्येक आइटम को अलग-अलग जोड़ने के लिए लूप के लिए उपयोग कर सकते हैं। हालांकि, यह दृष्टिकोण सेट अप करने के लिए अधिक जटिल है और asList()
का उपयोग करके मानों के साथ सूची को प्रारंभ करने से कम कुशल है। .
आइए उन पुस्तकालयों को आयात करके शुरू करें जिनका हम अपने कोड में उपयोग करने जा रहे हैं:
import java.util.ArrayList;import java.util.Arrays;
फिर हम एक क्लास लिखेंगे जिसने हमारे गानों ArrayList को दो मानों के साथ इनिशियलाइज़ किया:
क्लास मेन {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) { ArrayList <स्ट्रिंग> गाने =नया ArrayList (Arrays.asList ("लव मी डू", "हेल्प!")); System.out.println ("गाने:" + गाने); }}पूर्व>इस कोड में, हमने एक
ArrayList
. घोषित किया है जो स्ट्रिंग मानों को संग्रहीत कर सकता है। हमने अपने कोड को दो डिफ़ॉल्ट मानों के साथ अपनी सरणी सूची को प्रारंभ करने के निर्देश देने के लिए asList() का उपयोग किया है, जो वही बीटल्स गीत हैं जिन्हें हमने अपने पिछले उदाहरण में जोड़ा था।किसी ArrayList से कोई आइटम पुनर्प्राप्त करें
ArrayList वर्ग एक आसान विधि के साथ आता है जिसे
get()
. कहा जाता है जो आपको सरणी सूची के तत्वों तक पहुंचने की अनुमति देता है। इस पद्धति का उपयोग करने के लिए, आपको उस तत्व की अनुक्रमणिका स्थिति निर्दिष्ट करनी होगी जिसे आप एक्सेस करना चाहते हैं।इस उदाहरण पर विचार करें:
आयात करें song.add ("लव मी डू"); song.add ("सहायता!"); System.out.println ("दूसरा गीत:" + song.get(1)); }}पूर्व>
इस कोड में, हमने एक सरणी सूची बनाई है और दो मान जोड़े हैं। इसके बाद हमने
songs.get(1)
. का उपयोग किया है गीत को हमारी सूची में सूचकांक स्थान 1 पर पुनः प्राप्त करने के लिए। हमारा कोड लौटाता है:
दूसरा गाना:मदद!
एक ArrayList अपडेट करें
किसी सरणी सूची को अद्यतन करना सूची में तत्वों को जोड़ने जितना आसान है। एक अंतर्निहित विधि है जिसे
आयात करें song.add ("लव मी डू"); song.add ("सहायता!"); System.out.println ("गाने:" + गाने); song.set(1, "एक साथ आओ"); System.out.println ("गाने:" + गाने); }}पूर्व>set()
. कहा जाता है जिसका उपयोग आप किसी सूची में संग्रहीत मान को बदलने के लिए कर सकते हैं। निम्नलिखित कोड पर विचार करें:
हमारा कोड लौटाता है:
गाने:[लव मी डू, हेल्प!]
गाने:[लव मी डू, कम टुगेदर]
हमारे कोड में, हमने दो मान जोड़े हैं - "लव मी डू" और "हेल्प!" - हमारी सूची में। फिर हमने आइटम को इंडेक्स स्थिति 1 के साथ "आओ टुगेदर" में बदल दिया है। यह "सहायता!" की जगह लेता है हमारी सूची में "आओ एक साथ" के साथ। जब हम कार्यक्रम के अंत में अपनी सूची का प्रिंट आउट लेते हैं, तो हम देख सकते हैं कि इसमें संशोधन किया गया है।
किसी ArrayList से कोई तत्व निकालें
तत्वों को हमेशा के लिए ArrayList में नहीं रहना है। आप
remove()
. का उपयोग करके किसी तत्व को हटा सकते हैं किसी भी समय विधि। याद रखने के लिए कितना आसान तरीका है!इस उदाहरण पर विचार करें:
आयात करें song.add ("लव मी डू"); song.add ("सहायता!"); System.out.println ("गाने:" + गाने); स्ट्रिंग हटाई गई =song.remove(0); System.out.println ("गाने:" + गाने); System.out.println (हटाया गया); }}पूर्व>
इस उदाहरण में, हम अपनी सरणी सूची में दो आइटम जोड़ते हैं। फिर हम आइटम को इंडेक्स स्थिति 0 के साथ हटा देते हैं। हमारा कोड वापस आता है:
गाने:[लव मी डू, हेल्प!]
गाने:[सहायता!]
मुझे प्यार करते हो
हमने अभी-अभी
Love Me Do
. को हटाया है हमारी सरणी सूची से।remove()
मेथड उस आइटम का नाम लौटाता है जिसे हटा दिया गया है, जिसे हमने वेरिएबलremoved
. को असाइन किया है . हमने अपने प्रोग्राम के अंत में इस वेरिएबल के मान को कंसोल पर प्रिंट कर दिया है।एक ArrayList के माध्यम से पुनरावृति
क्या होगा यदि आप एक ArrayList के माध्यम से लूप करना चाहते हैं? आप अपनी पसंद के आधार पर या तो लूप के लिए या प्रत्येक लूप के लिए ऐसा कर सकते हैं।
मान लीजिए कि हम अपनी सूची में सभी बीटल्स गीतों को कंसोल पर प्रिंट करना चाहते हैं, प्रत्येक मान एक नई लाइन पर प्रदर्शित होता है। हम निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
आयात करें song.add ("लव मी डू"); song.add ("सहायता!"); for (int i =0; i
इस कार्यक्रम में, हमने अपनी सरणी सूची में प्रत्येक आइटम के माध्यम से पुनरावृति करने के लिए लूप के लिए उपयोग किया है। सरणी सूची में प्रत्येक आइटम के लिए, हम इसे कंसोल पर अपनी लाइन पर प्रिंट करते हैं। यह लूप तब तक जारी रहता है जब तक कि हमारी सूची का प्रत्येक आइटम कंसोल पर प्रिंट नहीं हो जाता।
ध्यान दें कि हमने
songs.size()
. नामक एक विधि का उपयोग किया है इस कार्यक्रम में। आकार () विधि हमें बताती है कि हमारी सरणी सूची में कितने मान संग्रहीत हैं।
हमारा कोड लौटाता है:
लव मी डू
मदद!
इसी तरह, आप एक सरणी सूची के माध्यम से पुनरावृति करने के लिए प्रत्येक लूप के लिए उपयोग कर सकते हैं। ऐसा इसलिए है क्योंकि प्रत्येक लूप किसी भी चलने योग्य वस्तु के माध्यम से पुनरावृति का समर्थन करता है। निम्नलिखित उदाहरण पर विचार करें:
आयात करें song.add ("लव मी डू"); song.add ("सहायता!"); के लिए (स्ट्रिंग गीत:गाने) { System.out.println (गीत); } }}पूर्व>
यह कार्यक्रम संरचना और उद्देश्य दोनों में बहुत समान है; यह हमारे
songs
. में सभी मानों को प्रिंट करता है कंसोल के लिए सरणी सूची। अंतर यह है कि हमने प्रत्येक मान के माध्यम से पुनरावृति करने के लिए प्रत्येक लूप का उपयोग किया है।
आप
for-each
. का उपयोग करने का विकल्प चुन सकते हैंfor
. के बजाय लूप लूप क्योंकि प्रत्येक लूप के लिए पढ़ना आसान है, लेकिन दोनों विधियां प्रभावी ढंग से काम करती हैं।निष्कर्ष
Java ArrayList वर्ग आपको ऐसे सरणियों को परिभाषित करने की अनुमति देता है जो बिना यह बताए कि कितने मानों को अग्रिम रूप से संग्रहीत किया जा सकता है, एकाधिक मानों को संग्रहीत कर सकता है।
हमने केवल जावा में ArrayLists का उपयोग करने की सतह को खंगाला है। अधिक जानने के लिए, आप निम्नलिखित ट्यूटोरियल देखना चाह सकते हैं:
- ArrayList से Array रूपांतरण
- ऐरेलिस्ट को कैसे इनिशियलाइज़ करें
- ऐरेलिस्ट को कैसे सॉर्ट करें
अब आपको इस बारे में चिंता करने की ज़रूरत नहीं है कि यदि आप नहीं जानते कि किसी सरणी को कितने मानों को संग्रहीत करने की आवश्यकता होगी, तो आप क्या करेंगे। आप इस समस्या को हल करने के लिए ArrayList का उपयोग करने में सक्षम होंगे!