2017-08-13 18 views
5

में आकार के साथ मैं कन्स्ट्रक्टर में आकार के साथ एक सूची शुरू करने की कोशिश कर रहा हूं। लेकिन मेरी सूची के आकार 0.शुरूआत ArrayList <ArrayList <Int>> कोटलिन

val seqList = ArrayList<ArrayList<Int>>(N) // This has the Problem 
val queries = ArrayList<Query>(Q) // This works like a charm 

है मैं गैर शून्य आदानों के रूप में दोनों N और Q सेट है उपयोगकर्ता से N = 100 और Q = 100

कहना मेरी कोड डिबगिंग जबकि मुझे पता चला है कि, queries.size() = 100 की सुविधा देता है लेकिन seqList.size() = 0

मेरी धारणा गलत है, seqList को भी N ArrayList<Int> ऑब्जेक्ट्स के साथ प्रारंभ किया जाना चाहिए।

+2

क्या आप सुनिश्चित हैं कि query.size() शून्य नहीं है? वह कन्स्ट्रक्टर आकार निर्धारित करता है, आकार नहीं। –

+0

मैं गलत बिंदु पर ब्रेकपॉइंट डाल रहा था, आप सही हैं। निर्माता आकार निर्धारित नहीं करता है, लेकिन क्षमता :) –

उत्तर

5

आप धारणा सही नहीं है, मुझे डर है। ArrayList की documentation से उद्धरित:

एक MutableList कार्यान्वयन, जो अपने समर्थन भंडारण के रूप में एक आकार बदलने योग्य सरणी का उपयोग करता है प्रदान करता है।

यह कार्यान्वयन क्षमता प्रबंधित करने का कोई तरीका प्रदान नहीं करता है, बैकिंग जेएस सरणी आकार बदलने योग्य है। जावास्क्रिप्ट में प्री-आवंटित सरणी आकारों के लिए कोई गति लाभ नहीं है, इसलिए यह कार्यान्वयन में किसी भी क्षमता और "वृद्धि वृद्धि" अवधारणाओं को शामिल नहीं करता है।

विशेष रूप से निर्माता:

ArrayList(capacity: Int = 0) 

एक खाली ArrayList बनाता है।

एक खालीArrayList, बनाई गई है इस प्रकार एक तर्क सूची के अंदर तत्वों को बनाने नहीं होगा के रूप में 100 प्रदान करते हैं।

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