如何在Java中创建一个锯齿状的二维数组?

9
我们的作业要求我们使用不规则数组来存储二维布尔矩阵的值。Java中是否有内置的类可以用于不规则数组,还是我需要手动创建一个由ArrayList数组组成的Array?
2个回答

16

在Java中,二维数组是由一维数组对象组成的数组。每个一维数组的长度可以不同,这意味着你可以轻易地创建锯齿数组。

例如,下面的代码是合法的Java代码,并会输出3 5 3 4

    int x[][] = {{0,1,2,3,4},{0,1,2},{0,1,2,3}};
    System.out.println(x.length);
    System.out.println(x[0].length);
    System.out.println(x[1].length);
    System.out.println(x[2].length);

如果我需要向这些个体数组添加更多元素,我是否需要调整x [1] 的大小,而不仅仅是x? - Lilluda 5
1
@Chris:是的。例如x[1] = Arrays.copyOf(x[1], newLength); - NPE

0

实际上听起来你可能需要一个稀疏矩阵的实现。如果你需要修改矩阵,那么它可以让你获得更好的性能。复制数组操作是相当昂贵的。Java中的稀疏矩阵/数组


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接