2010-03-04 12 views
20

मेरे कोड इस तरह दिखता है:जावा में वेक्टर में स्ट्रिंग सरणी में सभी आइटम कैसे जोड़ें?

Vector<String> My_Vector=new Vector<String>(); 
String My_Array[]=new String[100]; 

for (int i=0;i<100;i++) My_Array[i]="Item_"+i; 
...... 
My_Vector.addAll(My_Array); 

लेकिन मैं प्रत्येक आइटम जोड़ने के लिए पाशन के बिना एक त्रुटि संदेश, क्या, यह करने के लिए सही तरीका है मिल गया?

फ्रैंक

+0

आप वेक्टर क्यों प्रयोग कर रहे हैं? मैं एक ऐरेलिस्ट पसंद करूंगा, क्योंकि यह डिफ़ॉल्ट रूप से सिंक्रनाइज़ नहीं है। – duffymo

+2

वेक्टर का उपयोग न करें, यह एक विरासत वर्ग है, इसके बजाय ArrayList का उपयोग करें। और केवल 'My_Vector.add ("आइटम _" + i) का उपयोग करें;' इंटरमीडिएट सरणी –

+0

वाह का उपयोग करने के बजाय। मैंने कम से कम 5 वर्षों में एक वेक्टर खींच लिया नहीं है। :) मुझे वापस जेडीके 1.1 लाता है। आप शायद Collections.synchronizedList (नया ArrayList()) के साथ जाना चाहते हैं। वेक्टर के लिए – sidereal

उत्तर

17

vector.addAll() पैरामीटर में संग्रह लेता है। क्रम संग्रह करने के लिए सरणी में परिवर्तित करने के लिए, आपको Arrays.asList() का उपयोग कर सकते हैं:

My_Vector.addAll(Arrays.asList(My_Array)); 
+1

क्रिस जेस्टर-यंग उत्तर (वर्तमान में शीर्ष मतदान) एक बेहतर विकल्प प्रदान करता है। – espinchi

6
My_Vector.addAll(Arrays.asList(My_Array)); 

अगर आप देखते हैं, Collection.addAll एक Collection तर्क लेता है। एक जावा सरणी Collection नहीं है, लेकिन Arrays.asList, Collection.toArray के साथ संयोजन में, "सरणी-आधारित और संग्रह-आधारित API के बीच पुल" है।

वैकल्पिक रूप से, एक Collection करने के लिए एक सरणी से तत्वों को जोड़ने की विशिष्ट प्रयोजन के लिए, आप भी स्थिर सहायक विधि addAllCollections वर्ग से उपयोग कर सकते हैं।

Collections.addAll(My_Vector, My_Array); 
55
Collections.addAll(myVector, myArray); 

यह एक संग्रह (जैसे कि एक वेक्टर के रूप में) में एक सरणी की सामग्री को जोड़ने के लिए पसंदीदा तरीका है।

https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#addAll-java.util.Collection-T...-

निर्दिष्ट संग्रह करने के लिए निर्दिष्ट के सभी तत्वों को जोड़ता है। जोड़े जाने वाले तत्वों को अलग-अलग या सरणी के रूप में निर्दिष्ट किया जा सकता है। इस सुविधा विधि का व्यवहार c.addAll (Arrays.asList (तत्व)) के समान है, लेकिन यह विधि अधिकांश कार्यान्वयन के तहत को तेजी से चलाने की संभावना है।

+1

+1 मेरे टाइपो को सही करना, और यह "काफी तेज़" विकल्प प्रदान करना। – polygenelubricants

+0

उस विधि का कार्यान्वयन लूप होगा: '(टी तत्व: तत्व) 'के लिए। – Pindatjuh

+2

आप वास्तव में सही हैं, लेकिन आपने यह नहीं कहा कि यह क्यों पसंद किया जाता है। जावाडोक कहते हैं: इस सुविधा विधि का व्यवहार c.addAll (Arrays.asList (तत्व)) के समान है, लेकिन अधिकांश विधियों के तहत यह विधि काफी तेज़ी से चलने की संभावना है। –

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