java - Set size/dimensions of ArrayList<ArrayList> -


समस्या

मेरे पास ArrayList का ArrayList < / code> रों।

मेरे पास यह सामान्य कोड है:

  
  ArrayList & LT; ArrayList & LT; स्ट्रिंग & gt; & gt; सूची = नए अर्रेलिस्ट & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; (); (For int c = 0; r & lt; 4; r ++) {for (int c = 0; c & lt; 5; c ++) {list.get (r) .set (c, "अन्य सूची से एक तत्व") ; }}   

मैं पंक्तियों की संख्या के लिए आकार और कॉलम की संख्या के लिए 5 आकारों में मनमाने ढंग से आकार का 4 का उपयोग कर रहा हूं।

हालांकि, यह सीधा त्रुटि के एक सूचक को फेंकता है, जाहिर है क्योंकि मुझे ArrayList & lt; ArrayList & lt; स्ट्रिंग & gt; & gt;

के लिए कोई आयाम नहीं है I एक अर्रेइलिस्ट बना रहा है हालांकि, मुझे नहीं पता कि यह कैसे लागू करें:

  ArrayList & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; सूची = नए अर्रेलिस्ट & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; ();   

यह संकलन नहीं करेगा, लेकिन यह अनिवार्य रूप से मुझे क्या चाहिए:

  ArrayList & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; सूची = नया अर्रेलिस्ट & lt; ArrayList & lt; स्ट्रिंग & gt; (5) & gt; (4);   

मेरा औसत दर्जे का समाधान

सूची को प्रतिलिपि बनाने का प्रयास करने से पहले मैट्रिक्स को कुछ आयाम देने के लिए, मैं बस उन पंक्तियों की संख्या के लिए प्रेरित किया जो मैं चाहता था और मैंने प्रत्येक पंक्ति के लिए कॉलम की संख्या के आकार की एक सूची जोड़ दी

मैंने एक नियमित सरणी का इस्तेमाल किया और इसे एक ArrayList में बदल दिया, ताकि तत्वों में शून्य का एक डिफ़ॉल्ट मान हो, और ऐसा आकार में योगदान करेगा।

  के लिए (int r = 0; r & lt; 4; r ++) {// list.add (नया अर्रेलिस्ट & lt; स्ट्रिंग & gt; (5)); // सूची में काम नहीं करता है.एड (नया अर्रेलिस्ट & lt; स्ट्रिंग & gt; (Arrays.asList (नई स्ट्रिंग [5]))); }   

ताकि आकार सेट करने के लिए काम करता है, क्योंकि मैट्रिक्स में पर्याप्त तत्व जोड़ दिए जाएंगे, लेकिन यह पसंदीदा समाधान नहीं है।


प्रश्न < / H2>

क्या प्रारंभिक समय के दौरान एक ArrayList के

ArrayList के शुरुआती आयाम सेट करने का कोई तरीका है? या बस कुछ अलग है जो कि null मानों को पुनरावृति और जोड़ना है?

यह काम करता है मुझे: <पूर्व> अर्रेलिस्ट & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; सूची = नए अर्रे लिस्ट & lt; ArrayList & lt; स्ट्रिंग & gt; & gt; (4); के लिए (int r = 0; r & lt; 4; r ++) {ArrayList & lt; स्ट्रिंग & gt; एलएस = नए अर्रेलिस्ट & lt; स्ट्रिंग & gt; (5); Ls.add ("+ + (r + 1)); list.add (ls); } के लिए (अर्रेलिस्ट & lt; स्ट्रिंग & gt; एलएस: सूची) {System.out.println (ls); }

ध्यान दें: ArrayList # capacity के साथ संग्रह में मौजूद तत्वों की वर्तमान संख्या को भ्रमित न करें, संग्रह का वर्तमान अधिकतम आकार (जो तक पहुँचा नहीं जा सकता) ।

अधिक जानकारी के लिए, देखें:

निर्दिष्ट प्रारंभिक क्षमता के साथ एक खाली सूची बनाता है।

ध्यान दें कि सूची & lt; सूची & lt; जो भी & gt; & gt; आप 2 डी गतिशील सरणी नहीं बना रहे हैं, आप एक गतिशील सूची बना रहे हैं जिसमें गतिशील सूचियां शामिल हैं, इस प्रकार आप चाहिए अलग से सूची और अन्य सूची में (किसी भी आकार से) सूची जोड़ें, और प्रत्येक सूची में एक गतिशील आकार (उनके पास मानों के बावजूद) होगा। सादा जावा में कोई 2 डी गतिशील सरणी नहीं है और न ही गतिशील सरणी की सरणी है, जब तक कि आप ऐसी कक्षा नहीं बनाते या इसे किसी तीसरी पार्टी की लाइब्रेरी से आयात नहीं करते।


ऐसा लगता है कि यह संरचना आपके मामले के लिए बेहतर होगा: / P>

  स्ट्रिंग [] [] stringArrayOfArray = नया स्ट्रिंग [4] [5];   

एक और बहुत ही अजीब तरीका है (जिसे अनुशंसित नहीं) पूरा करने के लिए जो आप चाहते हैं / की आवश्यकता होगी:

  सूची & lt; स्ट्रिंग & gt; [] arrayOfList = नई सूची [4]; के लिए (इंट आई = 0; आई & lt; arrayOfList.length; i ++) {अररऑफ लिस्ट [i] = नया अर्रेलिस्ट & lt; स्ट्रिंग & gt; (); }    

Comments

Popular posts from this blog

sonata admin - how to add ManyToOne property field in configureListfield in sonataAdmin -

wpf - ControlTemplate with changes for every class -

python - how we can use ajax() in views.py in django? -