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
'Program Club' 카테고리의 다른 글
| JQuery 배열에서 속성으로 객체를 찾는 방법 (0) | 2020.11.22 |
|---|---|
| ffmpeg 출력에서 지속 시간을 추출하는 방법은 무엇입니까? (0) | 2020.11.22 |
| Android Google Maps v2 : 여러 줄 스 니펫으로 마커를 추가하는 방법은 무엇입니까? (0) | 2020.11.22 |
| Android Studio가 '파일이 잠겨 있음'오류를 표시하여 열지 못했습니다. (0) | 2020.11.22 |
| : 마지막 자식이 예상대로 작동하지 않습니까? (0) | 2020.11.22 |