"जर तुम्हाला असे वाटत असेल की आम्ही सर्व लिस्ट इंटरफेससह पूर्ण केले आहे, तर तुम्ही चुकत आहात. आम्ही आत्ताच सुरुवात करत आहोत. मी तुम्हाला LinkedList आणि ArrayList संग्रहांबद्दल सांगू दे ."

"मी ArrayList संग्रहाने सुरुवात करेन."

"या संग्रहाचा वारसा रेखाचित्र कसा दिसतो ते येथे आहे:"

"इंटरफेस हिरवे आहेत."

"अमूर्त वर्ग जांभळा आहेत."

"सामान्य वर्ग लाल आहेत."

"ठोस रेषा वारसा दर्शवतात आणि डॅश रेषा इंटरफेस अंमलबजावणीचे प्रतिनिधित्व करतात."

"हा सर्वात सोपा संग्रह आहे. अॅरेलिस्टमध्ये , घटक एका साध्या अॅरेमध्ये संग्रहित केले जातात."

"अ‍ॅरेवर या संग्रहाचा प्राथमिक फायदा म्हणजे त्याची विस्तार करण्याची क्षमता, म्हणजे आवश्यकतेनुसार त्याची लांबी वाढवण्याची क्षमता."

"जर अ‍ॅरेची जागा संपली, तर दुसरा मोठा अ‍ॅरे तयार केला जाईल आणि पहिल्या अॅरेमधील सर्व घटक त्यावर कॉपी केले जातील. नंतर दुसरा अ‍ॅरे पहिल्याची जागा घेईल आणि पहिला टाकून दिला जाईल (ते असेल कचरा गोळा करणाऱ्यांनी नष्ट केला आहे)."

"अ‍ॅरे किती मोठा होतो?"

"नवीन अॅरेची लांबी (3*n)/2+1 म्हणून मोजली जाते, जेथे n ही जुन्या अॅरेची लांबी असते. दुसऱ्या शब्दांत, जर जुना अॅरे 100 घटक लांब असेल, तर नवीन अॅरे 300/2+1 असेल = १५१."

"अॅरेलिस्टच्या मध्यभागी एक घटक जोडताना, नवीन घटक जिथे समाविष्ट केला जाईल त्याच्या उजवीकडे सर्व घटक उजवीकडे 1 स्थान कॉपी केले जातात आणि नंतर रिक्त सेलमध्ये नवीन घटक जोडला जातो."

"मध्यभागी एक घटक काढताना, त्या घटकाच्या उजवीकडील सर्व घटक डावीकडे 1 स्थान कॉपी केले जातात."

"तुम्ही असे म्हणत आहात की जेव्हा तुम्ही त्यात घटक जोडता तेव्हा अॅरेलिस्ट स्वतःला लांब करते आणि जेव्हा तुम्ही घटक काढून टाकता तेव्हा ती स्वतःला लहान करते?"

"नाही, ArrayList मधील अॅरे कधीही स्वतःहून लहान होत नाही; तथापि, तुम्ही ArrayList ला त्याच्या अंतर्गत अॅरेला trimToSize () मेथडला कॉल करून सर्वात लहान आकारात कमी करण्यास भाग पाडू शकता."

"आणि, नक्कीच, मी तुम्हाला LinkedList बद्दल सांगेन."

"त्याचा वारसा रेखाचित्र कसा दिसतो ते येथे आहे:"

"इंटरफेस हिरवे आहेत."

"अमूर्त वर्ग जांभळा आहेत."

"सामान्य वर्ग लाल आहेत."

"ठोस रेषा वारसा दर्शवतात आणि डॅश रेषा इंटरफेस अंमलबजावणीचे प्रतिनिधित्व करतात."

"तुम्हाला आधीच माहित आहे की, LinkedList घटकांना लिंक केलेली सूची म्हणून संग्रहित करते."

"मी ते नेहमी ऐकतो, पण ते काय आहे ते सांगू शकाल?"

"नक्की. "हे सोपे आहे."

"लिंक केलेल्या सूचीमध्ये घटक असतात जे अ) डेटा संग्रहित करतात आणि ब) पुढील आणि मागील घटकांचे संदर्भ संग्रहित करतात."

" अशा घटकाचा वर्ग स्ट्रिंग्स संग्रहित केल्यास तो कसा दिसेल:"

उदाहरण वर्णन
class LinkedListElement
{
String data;
LinkedListElement next;
LinkedListElement previous;
}
डेटा फील्ड घटकाचे स्ट्रिंग मूल्य संचयित करते .
पुढील फील्ड सूचीतील पुढील घटकाचा संदर्भ संग्रहित करते . मागील फील्ड सूचीमधील मागील
घटकाचा संदर्भ संग्रहित करते .

"आणि जर आपण सामान्य प्रकारची घोषणा वापरतो, तर ते असे काहीतरी दिसेल:"

जेनेरिक प्रकार घोषणेसह लिंक केलेल्या सूची घटकासाठी वर्ग
class LinkedListElement<T>
{
 T data;
 LinkedListElement<T> next;
 LinkedListElement<T> previous;
}

"अर्थ प्राप्त होतो."

"हे अधिक चांगल्या प्रकारे समजून घेण्यासाठी, चला कोड लिहू या जेथे आम्ही दुप्पट-लिंक केलेल्या सूचीमध्ये 10 घटक जोडू:"

उदाहरण
public static void main(String[] args)
{
 LinkedListElement<Integer> tail; // The tail (very last element) of the list

 for(int i = 0; i < 10; i++)
 {
  LinkedListElement<Integer> element = new LinkedListElement<Integer>();
  element.data = i;

  if (tail == null) // If the tail doesn't exist, then make our element the last element
  {
   tail = element;
  }
  else // if there is a tail, add the element
  {
   tail.next = element; // Set the next field on the tail element
   element.previous = tail; // Add a reference to the tail to the new element
   tail = element; // Make the new element the tail
  }
 }
}

"कल्पना करा की आमच्याकडे सूचीमध्ये 10 घटक आहेत. मध्यभागी एक घटक कसा घालायचा ते येथे आहे:"

सूची इंटरफेसची अंमलबजावणी - 3

"बदललेले दुवे चमकदार लाल रंगात हायलाइट केले आहेत . ते आता नवीन घटकाकडे निर्देश करतात."

"नवीन लिंक्स चमकदार जांभळ्या रंगात हायलाइट केल्या आहेत . ते त्याच्या शेजाऱ्यांसाठी नवीन घटकांचे दुवे आहेत."

"आणि आता कोड म्हणून:"

लिंक केलेल्या सूचीच्या मध्यभागी एक घटक घाला
// This field stores the element that is the head of the list
LinkedListElement<Integer> head =// Get the 4th element (counting from zero)
LinkedListElement<Integer> element4 = head.next.next.next.next;
// Get the 5th element
LinkedListElement<Integer> element5 = element4.next;

// Create the new element that we will insert
LinkedListElement<Integer> newElement = new LinkedListElement<Integer>();
newElement.data = -18;

// Replace the references in the element on the left
newElement.previous = element4;
element4.next = newElement;

// Replace the references in the element on the right
newElement.next = element5;
element5.previous = newElement;

"धन्यवाद, एली. मी निश्चितपणे याद्यांबद्दल बर्‍याच नवीन गोष्टी शिकलो."