1. ArrayListवर्ग

आज आपण वर्ग एक्सप्लोर करू ArrayList. संग्रह म्हणून ओळखल्या जाणार्‍या अनेक वर्गांपैकी हा पहिला आहे . Java मध्ये, संग्रह हा इतका विस्तृत आणि उपयुक्त विषय आहे की संपूर्ण CodeGym शोध त्यांना समर्पित आहे.

संग्रहांची रचना कशी केली जाते आणि त्यातील सर्व बारकावे पूर्णपणे समजून घेण्यासाठी, तुम्हाला प्रथम OOP, इंटरफेस, वारसा, मल्टीथ्रेडिंगची मूलभूत माहिती आणि बरेच काही शिकण्याची आवश्यकता आहे.

तर आज आपण फक्त सर्वात सोप्या प्रकारच्या संग्रहाशी परिचित होऊ. परंतु ते कसे वापरायचे आणि ते कसे कार्य करते हे तुम्हाला समजण्यासाठी पुरेसे खोल पातळीवर. मग आता ArrayListसंग्रहाला भेटा .

मागची गोष्ट

मी थोड्या पार्श्वभूमीपासून सुरुवात करेन. प्रोग्रामरना खरोखरच अॅरेचा एक पैलू आवडला नाही: त्यांचा आकार बदलला जाऊ शकत नाही. तुम्हाला अॅरेमध्ये आणखी तीन घटक साठवायचे असल्यास, पण एकच रिकामा सेल असेल तर?

अॅरेच्या जागेच्या मर्यादांवर एकमेव उपाय म्हणजे तुम्हाला स्टोअर करण्यासाठी आवश्यक असलेले सर्व घटक सामावून घेण्यासाठी खूप मोठी अॅरे तयार करणे. पण हे सहसा स्मरणशक्तीचा अपव्यय होते. अ‍ॅरेमध्ये सामान्यतः दोन किंवा तीन घटक असतात परंतु त्‍यापैकी 100 संचयित करण्‍याची गरज असल्‍याची अगदी कमी शक्यता असल्‍यास, 100 संचयित करण्‍याच्‍या क्षमतेसह अॅरे तयार करणे आवश्‍यक होते.

मग प्रोग्रामर काय घेऊन आले? त्यांनी वर्ग लिहिला ArrayList, ज्याने वर्गाप्रमाणेच काम केले Array, परंतु आकार बदलण्यायोग्य होता.

ArrayList वर्ग

वर्गाचे नाव ArrayListदोन शब्दांपासून तयार केले आहे: Array + List. Arrayएक अॅरे आहे आणि Listएक सूची आहे.

प्रत्येक ArrayListऑब्जेक्टमध्ये घटकांची एक सामान्य श्रेणी असते. जेव्हा तुम्ही मधील घटक वाचता ArrayList, तेव्हा ऑब्जेक्ट त्यांना त्याच्या अंतर्गत अॅरेमधून पुनर्प्राप्त करते. जेव्हा तुम्ही घटक लिहिता तेव्हा ते त्यांना अंतर्गत अॅरेमध्ये लिहितात.

अॅरेलिस्ट क्लासमध्ये अॅरेचे सर्व तोटे नाहीत. हे कसे करावे हे माहित आहे:

  • विशिष्ट प्रकारचे घटक साठवा
  • डायनॅमिकली सूचीचा आकार बदला
  • सूचीच्या शेवटी घटक जोडा
  • सूचीच्या सुरुवातीला किंवा मध्यभागी घटक घाला
  • सूचीतील कुठूनही घटक काढून टाका

अधिक तपशीलांसाठी, खाली पहा:


2. एखादी ArrayListवस्तू तयार करणे

ऑब्जेक्ट तयार करण्यासाठी ArrayList, तुम्हाला खालीलप्रमाणे कोड लिहावा लागेल:

ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();

ArrayListसंग्रह प्रकार/वर्ग कुठे आहे, TypeParameterसंग्रहामध्ये संग्रहित घटकांचा प्रकार आहे ArrayListआणि nameव्हेरिएबलचे नाव आहे ArrayList<TypeParameter>.

व्हेरिएबलमध्ये nameएक सामान्य प्रकार आहे. यात दोन प्रकार आहेत: संग्रहाचा प्रकार प्रथम दर्शविला जातो आणि नंतर संग्रहामध्ये संग्रहित घटकांचा प्रकार दर्शविण्यासाठी कोन कंस वापरला जातो.

उदाहरणे:

कोड वर्णन
ArrayList<Integer> list = new ArrayList<Integer>();
पूर्णांकांची यादी
ArrayList<String> list = new ArrayList<String>();
तारांची सूची
ArrayList<Double> list = new ArrayList<Double>();
वास्तविक संख्यांची यादी

अॅरेच्या विपरीत, संग्रह आदिम प्रकार संचयित करू शकत नाहीत, फक्त संदर्भ प्रकार . त्यामुळे तुम्हाला s च्या संग्रहाची आवश्यकता असल्यास int, Integerत्याऐवजी रॅपर क्लास वापरा.


3. सह ऑपरेशन्सArrayList

सुरुवातीला, नवीन तयार केलेल्या सूचीची लांबी शून्य आहे, कारण त्यात 0 घटक आहेत. तुम्ही सूचीमध्ये एक घटक जोडल्यास, त्याची लांबी 1 ने वाढते. तुम्ही जोडलेले घटक काढून टाकल्यास, लांबी पुन्हा शून्यावर येते.

खालील सारणी तुम्हाला वर्गाच्या पद्धतींबद्दल अधिक शिकवू शकते ArrayList:

पद्धती वर्णन
void add(Type value)
पास केलेला घटक सूचीमध्ये जोडतो
void add(int index, Type value)
सूचीमधील विशिष्ट स्थानावर एक घटक जोडते.
Type get(int index)
ज्याची अनुक्रमणिका आहे तो घटक मिळवतेindex
void set(int index, Type value)
valueज्या घटकाची अनुक्रमणिका आहे त्याला नियुक्त करतेindex
Type remove(int index)
ज्याची अनुक्रमणिका आहे तो घटक काढून टाकतो index. काढलेला घटक परत करतो.
Type remove(Type value)
तुम्ही मेथडमध्ये पास केलेला घटक काढून टाकते. असे एकापेक्षा जास्त घटक असल्यास, पहिला घटक काढून टाकला जाईल.
void clear()
सूची साफ करते, म्हणजे सूचीतील सर्व घटक काढून टाकते.
boolean contains(Type value)
यादीत समाविष्ट आहे की नाही ते तपासते value.
boolean isEmpty()
यादी रिकामी आहे की नाही ते तपासते. दुसऱ्या शब्दांत, सूचीची लांबी शून्य आहे की नाही.
int size()
सूचीचा आकार, म्हणजे सूचीमधील घटकांची संख्या मिळवते.
Type[] toArray(Type[] array)
सूचीचे घटक असलेले अॅरे मिळवते.
तुम्हाला पद्धतीमध्ये अॅरे पास करणे आवश्यक आहे.

या पद्धतींमुळे तुम्हाला सूचीसह जे काही हवे असेल ते करू देते: घटक स्वॅप करा, घटक जोडा आणि घटक काढून टाका. तुम्ही एका आदेशाने सूची साफ करू शकता किंवा सूचीला अॅरेमध्ये रूपांतरित करू शकता.



4. ArrayListआणि ची तुलनाArray

मला वाटत नाही की आम्ही तुलना ArrayListआणि अॅरे टाळू शकतो.

अ‍ॅरेसह तुम्ही फक्त 4 क्रिया करू शकता:

  • अॅरे तयार करा
  • निर्देशांकानुसार एक घटक मिळवा
  • निर्देशांकानुसार घटक सेट करा
  • अॅरेची लांबी मिळवा

येथे ही ऑपरेशन्स आहेत कारण ती अॅरे आणि एक वर लागू होतात ArrayList:

रचना अॅरेलिस्ट
String[] array = new String[10];
ArrayList<String> list = new  ArrayList<String>();
String s = array[0];
String s = list.get(0);
array[0] = "Bye";
list.set(0, "Bye");
int count = array.length;
int count = list.size();

चला कसे ArrayListकार्य करते विरुद्ध अॅरे कसे कार्य करते याची तुलना करूया. उदाहरणार्थ, हे कार्य अंमलात आणूया: "कीबोर्डवरील 10 तार वाचा आणि त्यांना उलट क्रमाने स्क्रीनवर प्रदर्शित करा"

अॅरे वापरणे ArrayList वापरणे
Scanner console = new Scanner(System.in);

// Read strings from the keyboard
String[] list = new String[10];

for (int i = 0; i < list.length; i++)
{
    String s = console.nextLine();
    list[i] = s;
}

// Display the contents of the array on the screen
for (int i = 0; i < list.length; i++)
{
    int j = list.length - i - 1;
    System.out.println(list[j]);
}
Scanner console = new Scanner(System.in);

// Read strings from the keyboard
ArrayList<String> list = new ArrayList<String>();

for (int i = 0; i < 10; i++)
{
    String s = console.nextLine();
    list.add(s);
}

// Display the contents of the collection on the screen
for (int i = 0; i < list.size(); i++)
{
    int j = list.size() - i - 1;
    System.out.println(list.get(j));
}

साधर्म्य स्पष्ट आहे. अॅरेसाठी सर्व काही कसेतरी लहान आणि स्पष्ट आहे. पण ArrayListअवघडही नाही: घटक मिळवण्यासाठी, आम्ही get()पद्धत वापरतो; घटक, पद्धत बदलण्यासाठी set(); यादीची लांबी मिळविण्यासाठी, size()पद्धत.

मग प्रोग्रामर वर्ग का वापरतात ArrayList?

संपूर्ण मुद्दा, अर्थातच, इतर सर्व पद्धती आहेत ज्या सामान्य अॅरेमध्ये नसतात:

  • सूचीमध्ये एक घटक जोडा
  • सूचीच्या मध्यभागी एक घटक जोडा
  • सूचीमध्ये एक घटक शोधा
  • सूचीमधून घटक काढून टाकत आहे