我试图动态设置我的数组大小。这里我的输入值数组值是
int[][] dubArr={{2,5,6},{2,5,4,7}};
我想设置我的数组大小
int[][] size=new int[dubArr.length][dubArray[0].length];
但问题是在这里我不能存储我的第二个数组的最后一个值
不要说[dubArray[1].length]
;
答案 0 :(得分:3)
查找第二个维度的最大长度并在一行中创建新数组会使数组成方形,因此您将丢失有关其形状的信息。所以我想你真正想要的是它原始形状的原始数组的深层拷贝:
if (dubArr == null) {
return null;
}
final int[][] size = new int[dubArr.length][];
for (int i = 0; i < dubArr.length; i++) {
size[i] = dubArr[i].clone();
}
return size;
即使dubArr
为null
或为空,也会有效。
答案 1 :(得分:1)
试试这个(Java8):
int[][] dubArr={{2,5,6},{2,5,4,7}};
int[][] size =new int[dubArr.length][Stream.of(dubArr).mapToInt(a -> a.length).max().getAsInt()];