2012-03-29 8 views
58

में ऐरेलिस्ट को ऐरे में कनवर्ट करना मेरे पास "abcd # xyz" और "mnop # qrs" जैसे मानों वाला एक ArrayList है। मैं इसे एक ऐरे में परिवर्तित करना चाहता हूं और उसके बाद इसे # के रूप में विभाजित कर सकता हूं और एबीसीडी, एक सरणी में mnop और xyz, qrs को किसी अन्य सरणी में विभाजित करना चाहता हूं। मैं निम्नलिखित कोड की कोशिश की:जावा

String dsf[] = new String[al.size()];    
for(int i =0;i<al.size();i++){ 
    dsf[i] = al.get(i); 
} 

लेकिन यह कह विफल "Ljava.lang.String; @ 57ba57ba"

आप मेरी मदद कर सकते हैं।

+2

पोस्ट अपने ArrayList की परिभाषा और पूर्ण त्रुटि संदेश –

+0

कैसे अपने 'al' घोषित किया जाता है? –

+6

"यह कहने में विफल रहा ..." का क्या मतलब है? यह प्रिंटिंग के परिणाम की तरह दिखता है 'dsf.toString() ' –

उत्तर

108

आप पहिया बदलने की जरूरत नहीं है, here के toArray() विधि:

String []dsf = new String[al.size()]; 
al.toArray(dsf); 
+0

ऐरेलिस्ट ए 1 = नया ऐरेलिस्ट (); के लिए (एंट्री <स्ट्रिंग, स्ट्रिंग> प्रविष्टि: outmap.entrySet()) { अगर (entry.getKey() indexOf ("डेटा") = -1।!) {\t \t \t \t exports.add (entry.getValue()); } \t \t \t \t} – Shruthi

+0

वहाँ भी इस फार्म 'http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html#toArray (टी [])' जहां के लिए है आप एक विशिष्ट टाइपेड सरणी प्रदान करना चाहते हैं। – wmorrison365

1

आप यात्रा के साथ क्या किया था कि मैं क्या प्रश्न के आधार पर इसके बारे में कर सकते हैं से गलत नहीं है। यह आपको स्ट्रिंग ऑब्जेक्ट्स की वैध सरणी देता है। जैसा कि किसी अन्य उत्तर में उल्लेखित किया गया है, हालांकि ArrayList ऑब्जेक्ट =>http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html#toArray%28%29

बस एक साइड नोट के लिए उपलब्ध ToArray() विधि का उपयोग करना आसान है। यदि आप अपने डीएसएफ सरणी को ठीक से पुन: सक्रिय करेंगे और प्रत्येक तत्व को अपने आप प्रिंट करेंगे तो आपको वैध आउटपुट मिलेगा। इस तरह:

for(String str : dsf){ 
    System.out.println(str); 
} 

क्या आप शायद करने की कोशिश की थी एक ही बार में पूरा सरणी वस्तु प्रिंट के बाद से है कि एक वस्तु स्मृति पता देना होगा जैसे आप अपने सवाल में मिला है। यदि आप उस प्रकार के आउटपुट को देखते हैं तो आपको जिस ऑब्जेक्ट को प्रिंट कर रहे हैं उसके लिए आपको एक ToString() विधि प्रदान करने की आवश्यकता है।

1
package com.v4common.shared.beans.audittrail; 

import java.util.ArrayList; 
import java.util.List; 

public class test1 { 
    public static void main(String arg[]){ 
     List<String> list = new ArrayList<String>(); 
     list.add("abcd#xyz"); 
     list.add("mnop#qrs"); 

     Object[] s = list.toArray(); 
     String[] s1= new String[list.size()]; 
     String[] s2= new String[list.size()]; 

     for(int i=0;i<s.length;i++){ 
      if(s[i] instanceof String){ 
       String temp = (String)s[i]; 
       if(temp.contains("#")){ 
        String[] tempString = temp.split("#"); 
        for(int j=0;j<tempString.length;j++) { 
         s1[i] = tempString[0]; 
         s2[i] = tempString[1]; 
        } 

       } 
      } 
     } 
     System.out.println(s1.length); 
     System.out.println(s2.length); 
     System.out.println(s1[0]); 
     System.out.println(s1[1]); 
    } 
} 
1

यहाँ आप के लिए दिए गए परिदृश्य समाधान है -

List<String>ls = new ArrayList<String>(); 
    ls.add("dfsa#FSDfsd"); 
    ls.add("dfsdaor#ooiui"); 
    String[] firstArray = new String[ls.size()];  
firstArray =ls.toArray(firstArray); 
String[] secondArray = new String[ls.size()]; 
for(int i=0;i<ls.size();i++){ 
secondArray[i]=firstArray[i].split("#")[0]; 
firstArray[i]=firstArray[i].split("#")[1]; 
} 
49
List<String> list=new ArrayList<String>(); 
list.add("sravan"); 
list.add("vasu"); 
list.add("raki"); 
String names[]=list.toArray(new String[list.size()]) 
1
import java.util.*; 
public class arrayList { 
    public static void main(String[] args) { 
     Scanner sc=new Scanner(System.in); 
     ArrayList<String > x=new ArrayList<>(); 
     //inserting element 
     x.add(sc.next()); 
     x.add(sc.next()); 
     x.add(sc.next()); 
     x.add(sc.next()); 
     x.add(sc.next()); 
     //to show element 
     System.out.println(x); 
     //converting arraylist to stringarray 
     String[]a=x.toArray(new String[x.size()]); 
      for(String s:a) 
      System.out.print(s+" "); 
    } 

} 
+1

यह अनुरोधित विभाजन नहीं करता है। – rghome

+0

उत्तर देने के लिए विवरण प्रदान करें यदि आप दूसरों को समझना चाहते हैं और शायद इसे – insomniac

+0

ऊपर उठाएं यह दृष्टिकोण [इस उत्तर में कुछ साल पहले पोस्ट किया गया था] (https://stackoverflow.com/a/13894859/1711796) । – Dukeling

2
String[] values = new String[arrayList.size()]; 
     for (int i = 0; i < arrayList.size(); i++) { 
      values[i] = arrayList.get(i).type; 
     } 
+0

यहां arrayList.get (i) .type सरणी सूची में मान का एक है। आप इसे वैसे भी प्राप्त कर सकते हैं। – ImAnand

6
List<String> list=new ArrayList<String>(); 
list.add("sravan"); 
list.add("vasu"); 
list.add("raki"); 
String names[]=list.toArray(new String[0]); 

आप अंतिम पंक्ति देखें कि (नई स्ट्रिंग [0]), आप आकार देने की ज़रूरत नहीं है, ऐसे समय हैं जब हम सूची की लंबाई नहीं जानते हैं, इसलिए इसे 0 के रूप में देने के साथ शुरू करने के लिए, निर्मित सरणी का आकार बदल जाएगा।

+1

मुझे लगता है कि 'नई स्ट्रिंग [0]' अनावश्यक है क्योंकि आपके पास हमेशा सूची है। तो आप आकार निर्धारित कर सकते हैं। –

+0

आप 'नई स्ट्रिंग [0] '' नई स्ट्रिंग [list.size()] ' –

1

यह सही जवाब आप चाहते हैं और इस समाधान मैं NetBeans पर अपने स्वयं चला है

ArrayList a=new ArrayList(); 
a.add(1); 
a.add(3); 
a.add(4); 
a.add(5); 
a.add(8); 
a.add(12); 

int b[]= new int [6]; 
     Integer m[] = new Integer[a.size()];//***Very important conversion to array***** 
     m=(Integer[]) a.toArray(m); 
for(int i=0;i<a.size();i++) 
{ 
    b[i]=m[i]; 
    System.out.println(b[i]); 
} 
    System.out.println(a.size()); 
+1

के साथ प्रतिस्थापित कर सकते हैं/बदलना चाहिए जब आपका उत्तर बेहतर है और कच्चे प्रकार के उपयोग के कारण अब केवल खराब है? – Tom

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

  • कोई संबंधित समस्या नहीं^_^