6

बेशक, मुझे सरणी सूची और लिंक्डलिस्ट के बीच प्रदर्शन अंतर के बारे में पता है। मैंने खुद को परीक्षण चलाया है और प्रविष्टि/हटाने और एक बहुत बड़ी सूची के लिए सरणी सूची और लिंक्डलिस्ट के बीच पुनरावृत्ति के लिए समय और स्मृति में बड़ा अंतर देखा है।"दोनों" सरणीसूची और लिंक्डलिस्ट के फायदे ... जावा में संभव है?

(मुझे सही अगर मैं गलत हूँ) हम आम तौर पर linkedlist से अधिक ArrayList पसंद करते हैं क्योंकि :

1) हम व्यावहारिक रूप से पुनरावृत्तियों अधिक बार प्रविष्टि/हटाए जाने से करते हैं। तो हम प्रविष्टि/हटाने से तेज होने के लिए पुनरावृत्ति पसंद करते हैं।

2) linkedlist की स्मृति भूमि के ऊपर ArrayList

3) कोई तरीका है जिसमें हम, जबकि/डालने बैच में को हटाने linkedlist के रूप में एक सूची को परिभाषित कर सकते है, और ArrayList के रूप में, जबकि पुनरावृत्ति से कहीं अधिक है। ऐसा इसलिए है क्योंकि सरणी सूची और लिंक्डलिस्ट में मौलिक रूप से अलग-अलग डेटा-स्टोरेज तकनीकें हैं।

क्या मैं तीसरे बिंदु के बारे में गलत हूं [मुझे उम्मीद है :)]? क्या एक ही सूची में इन दो डेटा संरचनाओं के लाभ होने की कोई संभावना है? मुझे लगता है, डेटा संरचना डिजाइनरों ने इसके बारे में सोचा होगा।

+4

संभावित डुप्लिकेट: http://stackoverflow.com/questions/1712952/is-there-a-known-implementation-of-an-indexed-linked-list – Aubin

+0

आपने यह खुद कहा था, अगर कोई समझौता समाधान था जिसमें उन सभी लाभ थे, तो कोई भी 'ऐरेलिस्ट' और 'लिंक्डलिस्ट' के बारे में भी नहीं जानता था। लिंक के लिए –

+0

@ औबिन धन्यवाद। +1 :) लेकिन यह 200 9 का सवाल है। पिछले 3 वर्षों में डेटा संरचनाओं के क्षेत्र में कोई सुधार? विशेष रूप से जावा 7 के रिलीज के बाद? –

उत्तर

1

यदि आप कुछ और प्रदर्शन संग्रह कार्यान्वयन की तलाश में हैं, तो Javolution देखें। वह पैकेज FastList और FastTable प्रदान करता है जो कम से कम लिंक किए गए सूचियों और सरणी सूचियों के बीच चयन करने की लागत को कम कर सकता है।

0

आप क्लोजर के "वैक्टर" (जो हुड के नीचे एक साधारण सरणी से बहुत अधिक हैं) में देखना चाहते हैं: http://blog.higher-order.net/2009/02/01/understanding-clojures-persistentvector-implementation/। वे लुकअप और सम्मिलन के लिए ओ (लॉग 32 एन) हैं।

ध्यान दें कि ये जावा से सीधे उपयोग योग्य हैं! (असल में, वे जावा कोड में कार्यान्वित किए गए हैं।)

संबंधित मुद्दे