हाँ, यह संग्रह हैं, जिस पर एक फर्क पड़ता है LinkedList की तरह यादृच्छिक पहुंच नहीं है। एक लिंक्ड सूची आंतरिक रूप से अगली ओर इंगित नोड्स द्वारा लागू की जाती है (एक सिर नोड से शुरू)।
प्राप्त (i) एक लिंक्ड सूची में विधि हेड नोड से शुरू होती है और लिंक के माध्यम से मैं नोड के माध्यम से सभी तरह से नेविगेट करता हूं। जब आप पारंपरिक लूप का उपयोग करके लिंक्ड सूची पर फिर से जाते हैं, तो आप प्रत्येक बार हेड नोड से फिर से शुरू करते हैं, इस प्रकार कुल ट्रैवर्सल वर्गबद्ध समय बन जाता है।
for(int i = 0; i< list.size(); i++) {
list.get(i); //this starts everytime from the head node instead of previous node
}
इटरेटर लिंक्ड सूची से प्राप्त से अधिक प्रत्येक पाश दोहराता के लिए और अपनी अगली() विधि कॉल है। इटेटरेटर अंतिम पहुंच के राज्यों को बनाए रखता है और इस प्रकार हर समय सिर से सभी तरह से शुरू नहीं होता है।
for(Object item: list) {
//item element is obtained from the iterator's next method.
}
ध्यान दें कि कारण एक लूप का कारण एक लिंक्ड सूची के साथ धीमा है, यह है कि प्रत्येक कॉल को 'i''' सूची के प्रमुख से प्राप्त होता है।मुझे यकीन है कि यह हर किसी के लिए सहज रूप से स्पष्ट है, लेकिन इसे समझने में मुझे एक मिनट लग गया। –