【问题标题】:How do I create a jagged 2d array in Java?如何在 Java 中创建锯齿状二维数组?
【发布时间】:2012-05-03 12:47:42
【问题描述】:

我们的家庭作业要求我们使用锯齿状数组来存储二维布尔矩阵的值。是否有用于锯齿状数组的内置 java 类,还是我必须使用 ArrayListsArray 手动创建它?

【问题讨论】:

    标签: java arrays matrix multidimensional-array jagged-arrays


    【解决方案1】:

    在 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?
    • @Chris:是的。例如x[1] = Arrays.copyOf(x[1], newLength);
    【解决方案2】:

    听起来您实际上可能想要一个稀疏矩阵实现。如果您必须修改矩阵,则可以从中获得更好的性能。数组复制操作非常昂贵。 Sparse matrices / arrays in Java

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      相关资源
      最近更新 更多