【问题标题】:2D ArrayList to a normal array java2D ArrayList 到普通数组 java
【发布时间】:2012-03-18 00:41:33
【问题描述】:

基本上,我正在创建一个动态 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 转换为普通数组?我尝试了许多不同的来源,但都没有帮助。

谢谢。

【问题讨论】:

  • @macduff 是的,所有字符串的大小相同。

标签: java arraylist nullpointerexception multidimensional-array toarray


【解决方案1】:

类似这样的:

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

【讨论】:

    【解决方案2】:

    不确定你到底想要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
    }
    

    【讨论】:

    • 啊,谢谢。添加“.toArray(new char [0][0])”有效。但是你能解释一下“new char [0][0]”是如何影响解决方案的吗?新手在这里:)
    猜你喜欢
    • 2023-03-20
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2019-07-10
    • 2018-11-26
    • 2023-03-31
    相关资源
    最近更新 更多