繁体   English   中英

如何使用Java增加2D数组中的行数

[英]How to increase the number of rows in a 2d array using java

我需要使用Java将2 * 3数组转换为6 * 3数组。 我是Java的新手,所以对我的帮助非常感谢。

你不能 数组一旦分配,便具有固定大小。

您必须分配一个新数组并将旧数组的内容复制到新数组中。

一种解决方案是使用Arrays.copyOf() ,它将为您处理副本:

X[][] newArray = Arrays.copyOf(original, 6);
// Necessary: empty spaces are filled with null by default
for (int index = original.length; index < 6; index++)
    newArray[index] = new X[3];

或者走简单的路线,而改用List (已经建议使用ArrayList )。 他们按需扩展。

而且,如果您想要一个“二维通用数组”,Guava提供了Table ,您可以使用以下方法来模仿二维数组:

final Table<Integer, Integer, X> mockArray = HashBasedTable.create();

您不能更改数组的大小。 但是,您可以创建尺寸为6 * 3的新数组,将数据复制到( System.arrayCopyArrays.copyOf ),然后返回对新数组的引用。

如果最初不确定数组大小,请使用ArrayList代替。

数组的大小是固定的。 通常,当需要像这样增长的元素集合时,应该使用List而不是数组(也许是ArrayList ,尽管应该选择最适合自己的实现)。

X[][]  // fixed number of rows and columns

变成

List<X[]>  // the number of rows is not fixed anymore

(当然,如果您需要更改两个尺寸,请使用List<List<X>>

数组的大小固定,一旦分配到内存中就无法更改。 您应该改用某种类型的List ,例如ArrayList 它们的大小可以动态增加或减少,如果您不想这样做,甚至不必设置它,就可以添加元素而不必担心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM