如何在 Java 中创建锯齿状二维数组?
Posted
技术标签:
【中文标题】如何在 Java 中创建锯齿状二维数组?【英文标题】:How do I create a jagged 2d array in Java? 【发布时间】:2012-05-03 12:47:42 【问题描述】:我们的家庭作业要求我们使用锯齿状数组来存储二维布尔矩阵的值。是否有用于锯齿状数组的内置 java 类,还是我必须使用 ArrayLists
的 Array
手动创建它?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在 Java 中创建锯齿状二维数组?的主要内容,如果未能解决你的问题,请参考以下文章