簡體   English   中英

將2D ArrayList轉換為普通數組Java

[英]2D ArrayList to a normal array java

基本上,我正在創建一個動態2D ArrayList。

private ArrayList<char[]> myArray;

下面的代碼是循環完成的。 給出了一些“相同長度”的隨機字符串,以將所有字符存儲在數組中。

而(身體)

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

因此,在將所有字符插入ArrayList之后,我想將myArray轉換為普通數組。 (為什么?因為將來會有用),我認為我在這里做錯了:

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

所以問題是當我嘗試打印整個'charArray'只是為了檢查或任何元素時,出現“ java.lang.NullPointerException”錯誤。

那么如何將2d ArrayList轉換為普通數組呢? 我嘗試了許多不同的資源,但沒有幫助。

謝謝。

不確定到底要使用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
}

像這樣:

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,  , !]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM