Program Club

Java에서 ArrayList를 Array로 변환

proclub 2020. 11. 22. 20:39
반응형

Java에서 ArrayList를 Array로 변환


"abcd # xyz"및 "mnop # qrs"와 같은 값을 가진 ArrayList가 있습니다. 배열로 변환 한 다음 구분 기호로 #으로 분할하고 배열에 abcd, 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"라고 말하지 못했습니다.


당신은 바퀴를 재발견 할 필요가 없습니다, 여기 '의 S toArray()방법 :

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

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

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

마지막 줄 (new String [0])이 보이면 크기를 지정할 필요가 없습니다. 목록의 길이를 알 수없는 시간이 있으므로 0으로 지정하는 것으로 시작합니다. 배열 크기가 조정됩니다.


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

반복으로 한 것은 질문을 기반으로 할 수있는 것과 틀리지 않습니다. 유효한 String 객체 배열을 제공합니다. 다른 답변에서 언급했듯이 ArrayList 객체 => http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html에 사용할 수있는 toArray () 메서드를 사용하는 것이 더 쉽습니다. # toArray % 28 % 29

참고 사항입니다. dsf 배열을 올바르게 반복하고 각 요소를 자체적으로 인쇄하면 유효한 출력을 얻을 수 있습니다. 이렇게 :

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

당신이 아마도 당신이 당신의 질문에서 얻은 것과 같은 객체 메모리 주소를 제공하기 때문에 한 번에 완전한 Array 객체를 인쇄하려고 시도했을 것입니다. 이러한 종류의 출력이 표시되면 인쇄중인 객체에 toString () 메서드를 제공해야합니다.


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]);
    }
}

주어진 시나리오에 대한 해결책은 다음과 같습니다.

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];
} 

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+" ");
  }

}

This is the right answer you want and this solution i have run my self on 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());

This can be done using stream:

List<String> stringList = Arrays.asList("abc#bcd", "mno#pqr");
    List<String[]> objects = stringList.stream()
                                       .map(s -> s.split("#"))
                                       .collect(Collectors.toList());

The return value would be arrays of split string. This avoids converting the arraylist to an array and performing the operation.

참고URL : https://stackoverflow.com/questions/9929321/converting-arraylist-to-array-in-java

반응형