2011-08-19 19 views
5

में कनवर्ट करने में समस्याएं स्ट्रिंग्स के सेट को स्ट्रिंग [] सरणी में परिवर्तित करने में कोई समस्या नहीं है, लेकिन मुझे इंटीजर के सेट को int [] सरणी में परिवर्तित करने में समस्याएं आ रही हैं। मैं इंटीग्रर्स को अपने आदिम में कैसे परिवर्तित कर सकता हूं?इंटर्स को int [] array

मुझे कोई संबंधित प्रश्न नहीं दिख रहे हैं। कोई भी त्वरित सुझाव जो मदद कर सकता है?

कभी-कभी, ऐरो के मामले में ऑटोबॉक्सिंग का उपयोग नहीं किया जा सकता है। मुझे नहीं लगता कि पूर्णांक की एक सरणी स्वचालित रूप से इनट्स की सरणी में परिवर्तित हो जाएगी।

+2

'toArray (टी []) 'के साथ संभव नहीं है। बस इसे अपने ऊपर लूप करें और ऑटोबॉक्सिंग को अपना काम करने दें। – BalusC

+0

आप एक 'int' क्यों चाहते हैं? किसी भी विशिष्ट कारण 'इंटीजर' ठीक नहीं है? – Nivas

उत्तर

0

आप ...

Integer.intValue(); 

समारोह कॉल कर सकते हैं

lemme आपको क्या चाहिए :)

+0

धन्यवाद पियुष। बीमार इस समारोह का उपयोग कर जाना है। –

+1

balus यह सही साथी मिल गया! अगर आपको यह पसंद आया तो कृपया उत्तर स्वीकार करें :) – MozenRath

14

string[] मौजूद नहीं है की अधिक विशिष्ट जानकारी पता है, मुझे लगता है कि तुम्हारा मतलब String[]

Set<Integer> से int[] में कनवर्ट करने के लिए आपको मैन्युअल रूप से सेट पर पुन: प्रयास करना होगा।

इस तरह

:

Set<Integer> set = ...; 

int[] arr = new int[set.size()]; 

int index = 0; 

for(Integer i : set) { 
    arr[index++] = i; //note the autounboxing here 
} 

ध्यान दें कि सेट, किसी विशेष क्रम नहीं है, तो क्रम महत्वपूर्ण है, तो आप एक SortedSet उपयोग करने की आवश्यकता होगी।

+1

हाँ lol। यही मेरा मतलब था थॉमस। क्षमा करें टाइपो त्रुटि। फिर भी आपका धन्यवाद। –

+0

किसी कारण से यह प्रत्येक लूप के लिए तत्व के प्रकार को इंटीजर होने की इजाजत नहीं देता है। –

+1

फिर यह 'सेट ' सेट नहीं है लेकिन 'सेट' या 'सेट ' है। – BalusC

0

यदि आप जावा 5+ ऑटोबॉक्सिंग का उपयोग करते हैं तो इसका ध्यान रखना चाहिए ...!

आपको क्या त्रुटि मिलती है?

संपादित करें: ठीक है, मैं देख ..

अन्य की तरह ने कहा: अपने सेट पर

पाश और बस int [] के अंदर पूर्णांक शब्दों में कहें, autoboxing परिवर्तित करना चाहिए।

1

मुझे लगता है कि समस्या यह है कि Set<Integer>.toArray में int[] के बजाय परिवर्तित हो जाता है। तो आपके पास कोई आसान तरीका नहीं है: आपको मैन्युअल रूप से सेट के माध्यम से पुन: प्रयास करना होगा और इसके तत्वों को int सरणी में जोड़ना होगा। किसी व्यक्ति को Integer से int को जावा 5 और उसके बाद में ऑटोबॉक्सिंग द्वारा नियंत्रित किया जाता है।

0

यह ऑटो अनबॉक्सिंग मानते हुए काम करना चाहिए!

Set<Integer> myIntegers; // your set 
int[] ints = new int[myInts.size()]; 
int index = 0; 
for(Integer i : myIntegers){ 
    ints[index++] = i; 
} 
0

जावा 8+ का उपयोग करते समय इसका अनुभव करने वाले किसी भी व्यक्ति स्ट्रीम का उपयोग कर सकते हैं।

int[] array = set.keySet().stream().mapToInt(i -> i).toArray();