如何在数组末尾添加新的数组元素?

时间:2015-05-20 19:47:28

标签: java

我想将数组添加到另一个数组数组中。你能救我吗?

 public static double[][] append(double[][] array, double[] value) {
             double[][] result = Arrays.copyOf(array, array.length + value.length);
             for(int i=0;i<value.length;i++){
             result[result.length - 1][i] = value[i];
             }
             return result;
        }

2 个答案:

答案 0 :(得分:0)

您只需向array添加一个索引,并将其值设置为value。目前,您正在尝试在双精度数组数组中添加double值。

public static double[][] append(double[][] array, double[] value) {
    array = Arrays.copyOf(array, array.length + 1);
    array[array.length - 1] = value;
}

答案 1 :(得分:0)

您只是添加了一个数组,因此请更改:

double[][] result = Arrays.copyOf(array, array.length + value.length);

到此:

double[][] result = Arrays.copyOf(array, array.length + 1);

每个数组都是一个对象,甚至是原始数组。如果您要在代码中添加System.out.println(result[0].getClass().getSuperClass());,则会打印class java.lang.Object

这意味着'result'的每个元素都是一个对象。当您调用Arrays.copyOf并请求更大的数组时,所有额外元素都设置为null(在Arrays.copyOf documentation中指定)。

这意味着在将result[result.length - 1][i]设置为非空值之前,您可能无法合法访问result[result.length - 1]。具体来说,您希望将其设置为新的双数组。

在Java中,所有数组都有一个类型安全的公共clone()方法,所以你可以取消你的for循环,只需调用:

result[result.length - 1] = value.clone();