2

기본적으로 동적 인 2d ArrayList를 만듭니다.2D ArrayList를 일반 배열 java

private ArrayList<char[]> myArray; 

아래의 코드는 루프로 처리됩니다. "동일한 길이"의 무작위 문자열 중 일부는 배열의 모든 문자 인 을 저장합니다.

동안 (몸이) 모든 문자가 ArrayList에 삽입되도록 한 후

char[] temp = myString.toCharArray(); 
myArray.add(temp); 

, 나는 정상적인 배열에 myArray의 변환합니다. (? 그것은 미래에 도움이 될 것입니다 때문에 이유) 그리고 내가 생각하는 내가 잘못 여기서 뭐하는 거지 :

charArray = (char[][]) myArray.toArray(); 
//declaration of 'charArray' is already done at the start of the class. 

을 나는 전체 'charArray 그냥 확인, 또는 인쇄 할 때 그래서 문제가있다 요소가 있으면 "java.lang.NullPointerException"오류가 발생합니다.

2d ArrayList를 일반 배열로 변환하는 방법은 무엇입니까? 나는 많은 다른 근원을 시도하고 그러나 돕지 않았다.

감사합니다.

+0

@macduff 예, 모든 문자열은 크기가 같고. – jbchichoko

답변

4

char[] 또는 char[][]을 끝에 넣으려면 확실하지 않습니다. 두 옵션 아래 참조 :이 같은

public static void main(String... args) throws Exception { 
    List<char[]> myArray = new ArrayList<char[]>(); 
    myArray.add("string1".toCharArray()); 
    myArray.add("string2".toCharArray()); 
    myArray.add("string3".toCharArray()); 

    char[][] charArray2D = myArray.toArray(new char[0][0]); 
    System.out.println(charArray2D.length); //prints 3 

    StringBuilder s = new StringBuilder(); 
    for (char[] c : myArray) { 
     s.append(String.copyValueOf(c)); 
    } 
    char[] charArray1D = s.toString().toCharArray(); 
    System.out.println(charArray1D.length); //prints 21 
} 
+0

감사합니다. ".toArray (new char [0] [0])"가 추가되었습니다. 하지만 "새로운 char [0] [0]"이 솔루션에 어떻게 영향을 미치는지 설명 할 수 있습니까? 초보자는 여기 :) – jbchichoko

+0

javadoc을 확인하십시오. http://docs.oracle.com/javase/6/docs/api/java/util/List.html#toArray%28T[]%29 – assylias

2

뭔가 :

public static void main(String[] args) { 
    List<char []> list = new ArrayList<char []>(); 
    list.add("hello".toCharArray()); 
    list.add("world !".toCharArray()); 
    char[][] xss = list.toArray(new char[0][0]); 
    for (char[] xs : xss) { 
     System.out.println(Arrays.toString(xs)); 
    } 
} 

출력 :

[h, e, l, l, o] 
[w, o, r, l, d, , !]