प्रत्येक उत्तर देने वाले प्रत्येक व्यक्ति को सही है। वे सभी अपनी धारणा में सही हैं, यह आपके उपयोग पैटर्न पर बहुत अधिक निर्भर करता है, यानी कोई भी आकार-फिट नहीं है-सभी सूची। लेकिन मेरे लेखन के पल में वे सभी उल्लेख करने के लिए भूल गए (या तो, या मैं मैला पाठक हूं) एक उपयोग-मामला जब लिंक्डलिस्ट सबसे अच्छा है: इटरेटर-स्थित डालने वाला डालने।इसका मतलब है, कि आप नहीं कर रहे हैं बस
LinkedList::add(int index, E element)
Inserts the specified element at the specified position in this list.
जो विधि वे आंकड़े प्राप्त करने के लिए इस्तेमाल होने लगते हैं, लेकिन
iterator.insert(E element)
एक iterator
या तो
public abstract ListIterator<E> listIterator(int index)
Returns a list-iterator of the elements in this list (in proper sequence), starting at the specified position in the list.
के माध्यम से प्राप्त के साथ
या
public Iterator<E> iterator()
Returns an iterator over the elements in this list (in proper sequence).
, तो आप कभी भी सर्वश्रेष्ठ मनमाने ढंग से सम्मिलन प्रदर्शन प्राप्त करने के लिए बाध्य हैं। यह निश्चित रूप से इंगित करता है कि आप सूची के माध्यम से कॉलर की संख्या को सीमित करने में सक्षम हैं() और सूची इटरेटर(), और सूची के माध्यम से इटरेटर के आंदोलनों की संख्या (उदाहरण के लिए आप सूची में केवल एक अनुक्रमिक पास कर सकते हैं ताकि आपको आवश्यक सभी प्रविष्टियां कर सकें)। यह इसके उपयोग-मामलों को उनकी संख्या में काफी सीमित बनाता है, लेकिन फिर भी वे अक्सर होते हैं जो अक्सर होते हैं। और उनसे लिंक्डलिस्ट का प्रदर्शन यही कारण है कि यह जावा (न केवल भविष्य में) सभी भाषाओं के सभी कंटेनर संग्रह में रखा जा रहा है, न केवल जावा।
पीएस। बेशक उपर्युक्त सभी अन्य परिचालनों पर लागू होते हैं, जैसे कि(), निकालें(), आदि। I सावधानी से डिजाइनर के माध्यम से उपयोग की गई डिज़ाइन उन सभी को ओ (1) को बहुत ही कम वास्तविक स्थिरता के साथ बनाती है। निश्चित रूप से वही अन्य सभी सूचियों के लिए कहा जा सकता है, यानी इटरेटर एक्सेस उन्हें सभी गति देगा (हालांकि थोड़ा)। लेकिन ArrayList के डालने() को हटाएं और हटाएं() - वे अभी भी ओ (एन) होने जा रहे हैं ... और वृक्षारोपण के सम्मिलित नहीं हैं() और हटाएं() - पेड़ संतुलन ओवरहेड ऐसा कुछ नहीं है जिसे आप टालना चाहते हैं ... और वृक्षारोपण शायद अधिक मेमोरी ओवरहेड है ... आपको मेरा विचार मिलता है। इसे सब कुछ समेटने के लिए, लिंक्डलिस्ट सूचियों पर छोटे हाय-परफ स्कैन-जैसे संचालन के लिए है। चाहे वह उपयोग-मामला है या नहीं - केवल आप ही बता सकते हैं।
पीएसएस। यही कारण है कि कहा, मैं इसलिए भी बने हुए हैं रहा हूँ
एक LinkedList में एक आइटम के लिए समाप्त करने के लिए वे परिशोधित है परीक्षा या ArrayList के बढ़ रही दर्द को नजरअंदाज कर दिया, और को ध्यान में रखा नहीं किया है प्रविष्टि और हटाने बार है कि पहले से ही स्थित है।
मुझे लगता है कि ट्रेलिस्ट को अकेले इंडेक्स के आधार पर संतुलित (संभवतः लाल-काले) पेड़ कार्यान्वयन का समर्थन है। यह निश्चित रूप से ट्रेलिस्ट को तेज़ कर देगा, हालांकि मुझे नहीं पता कि बड़ी सूचियों को संतुलित करते समय इसका क्या असर पड़ता है। मुझे लगता है कि आप उनके बारे में सही हैं ArrayList प्रारंभिकरण और मुद्दों को फिर से आकार देने की अनदेखी करते हैं। – Thimmayya