我需要使用 java 将 2 * 3 数组转换为 6 * 3 数组。知道我该怎么做吗?我是 Java 新手,因此不胜感激。
问问题
1075 次
4 回答
9
你不能。数组一旦分配,就具有固定的大小。
您必须分配一个新数组并将旧数组的内容复制到新数组中。
一种解决方案是使用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];
或者走简单的路线并使用 aList
代替(ArrayList
如已经建议的那样)。他们按需扩展。
如果你想要一个“二维通用数组”,GuavaTable
可以使用它来模仿二维数组,例如:
final Table<Integer, Integer, X> mockArray = HashBasedTable.create();
于 2013-06-28T22:40:59.617 回答
3
你不能改变数组的大小。但是,您可以创建一个维度为 6 * 3 的新数组,将数据复制到 ( System.arrayCopy
, Arrays.copyOf
) 上,然后返回对新数组的引用。
如果您最初不确定数组大小,请改用ArrayList。
于 2013-06-28T22:39:09.100 回答