在java中向多维数组中再添加一个元素
一个方法返回java中的二维数组。我想再添加一个元素。不确定如何将其复制到另一个新的二维数组中&再添加一个元素。有人知道吗在java中向多维数组中再添加一个元素,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,一个方法返回java中的二维数组。我想再添加一个元素。不确定如何将其复制到另一个新的二维数组中&再添加一个元素。有人知道吗 String arr[][]=getTwoDArray(); 现在我想再增加一行。像这样的 String newArr[][] = new String[arr.length+1][]; arr[length+1][0]= {"car"}; 你知道吗?你不能调整数组的大小:它们的大小在创建时是固定的 您只能创建一个新数组并在中复制内容;您可以使用(*)方便地执行此操作:
String arr[][]=getTwoDArray();
现在我想再增加一行。像这样的
String newArr[][] = new String[arr.length+1][];
arr[length+1][0]= {"car"};
你知道吗?你不能调整数组的大小:它们的大小在创建时是固定的 您只能创建一个新数组并在中复制内容;您可以使用(*)方便地执行此操作: 然而,正如@KevinEsche在他对这个问题的评论中所指出的,您可能会发现一个(或者其他类型的
列表
)更便于使用:尽管它也有一个数组支持,并且偶尔需要调整该数组的大小,但它会对您隐藏细节
(*)这里的问题是
数组。copyOf
执行arr
的浅拷贝,因此arr[i]
元素的任何更改都将反映在newArr[i]
的元素中(对于0您无法调整数组的大小:它们的大小在创建时是固定的)
只能创建新数组并复制中的内容;可以使用(*)方便地执行此操作:
然而,正如@KevinEsche在他对这个问题的评论中所指出的,您可能会发现一个(或者其他类型的列表
)更便于使用:尽管它也有一个数组支持,并且偶尔需要调整该数组的大小,但它会对您隐藏细节
(*)这里的问题是数组。copyOf
执行arr
的浅拷贝,因此arr[i]
元素的任何更改都将反映在newArr[i]
(对于0,您无法调整数组的大小:它们的大小在创建时是固定的。您只能创建一个新数组并在中复制内容;您可以使用方便地执行此操作。在本例中,a就是这样做的。您无法调整数组的大小:它们的大小在创建时是固定的。您只能创建一个新数组并在中复制内容;您可以n使用方便的方法来做这件事。在这种情况下,a就是为了这个
String newArr[][] = Arrays.copyOf(arr, arr.length + 1);
// Note that newArr[arr.length] is currently null.
newArr[arr.length] = new String[] { "car" };
String newArr[][] = Arrays.copyOf(arr, arr.length + 1);
for (int i = 0; i < arr.length; ++i) {
newArr[i] = Arrays.copyOf(arr[i], arr[i].length);
}
// ...