में बड़ी सूचियों के लिए सबसे अच्छी सूची कार्यान्वयन क्या है मुझे एन तत्वों की एक बड़ी सूची बनाना है (100,000 तक हो सकता है)। सूची में प्रत्येक तत्व सूची के सूचकांक के बराबर एक पूर्णांक है। इसके बाद मुझे इस सूची में Collections.shuffle को कॉल करना होगा। मेरा सवाल है, जो सूची कार्यान्वयन (या तो जावा संग्रह या अपाचे संग्रह) का उपयोग किया जाना चाहिए। मेरी आंत महसूस है कि ऐरेलिस्ट का यहां भी उपयोग किया जा सकता है। सभी विचारों की सराहना की जाती है। धन्यवाद!जावा
इनपुट के लिए धन्यवाद। मुझे लगता है कि मैं ArrayList के लिए चिपके हुए हूँ। मैं वर्तमान में प्रारंभिक कैपेसिटी पैरामीटर के साथ ऐरेलिस्टिस्ट कन्स्ट्रक्टर का उपयोग कर रहा हूं और मैं सूची का आकार पास करता हूं। तो यदि मूल सूची 100000 है, तो मैं इस नई सूची को नए ऐरेलिस्ट (100000) के साथ बना देता हूं; इसलिए मुझे लगता है कि मेरे पास एक सरणी नहीं है और एक सूची है क्योंकि कोई आकार बदलने वाला नहीं होगा। इसके अलावा, अपाचे संग्रहों में से अधिकांश ग्रोथलिस्ट & की तरह सूचीबद्ध हैं LazyList RandomAccess को लागू नहीं करता है। यह निश्चित रूप से शफल को धीमा कर देगा (javadocs के अनुसार)। FastArrayList RandomAccess को कार्यान्वित करता है लेकिन अपाचे के पास इस वर्ग के लिए एक नोट है, "यह वर्ग क्रॉस-प्लेटफ़ॉर्म नहीं है। इसका उपयोग करने से कुछ आर्किटेक्चर पर अप्रत्याशित विफलता हो सकती है"।
क्या आप उस लक्ष्य को विस्तारित कर सकते हैं जिसे आप प्राप्त करना चाहते हैं? – rsp
जोड़ने और शफल करने के बाद सूची के साथ आप क्या करते हैं? क्या आप मध्य में तत्व जोड़ते/हटाते हैं? क्या आप सिरों पर तत्व जोड़ते/हटाते हैं? क्या आप बीच में तत्वों को मनमानी क्रम में एक्सेस करते हैं, या आप एक छोर से दूसरी छोर तक एक ही पास करते हैं? यह जानने के बिना यह तय करना वाकई मुश्किल है कि आप इसके साथ क्या करने जा रहे हैं। यदि आप जो करना चाहते हैं वह संख्याओं को क्रमशः जोड़ना और शफल करना है, तो मैं कहूंगा कि ऐरेलिस्ट उत्तर है। – MAK
100000 इन दिनों इतना बड़ा नहीं है। सरणी सूची के साथ सबसे बेवकूफ तरीके से इसे करने से मेरी मशीन पर 100ms से कम (इंटेल कोर 2 टी 5600 @ 1.83GHz का एकल कोर) लगता है। – starblue