我正在尝试将值添加到数组的末尾。我得到这个适用于具有固定长度的数组,但现在我需要使它适用于任何大小的数组。我认为一个简单的for循环可以解决问题,我只是无法弄清楚语法。
double[] array2 = new double[array.length + 1];
System.arraycopy(array, 0, array2, 0, array.length);
array2[array.length] = val;
array = array2;
return array2;
答案 0 :(得分:4)
您可能需要考虑使用ArrayList,您可以将其视为动态数组。它的大小是动态的,您可以继续添加元素而不必担心大小。
通过在数组的末尾添加一个值我假设您希望插入一个值。您可以使用这样的ArrayList执行此操作:
ArrayList<Double>myArrayList = new ArrayList<Double>();
myArrayList.add(3.14);
myArrayList.add(6.24);
如果您希望将此ArrayList转换为数组,可以查看here
答案 1 :(得分:0)
尝试以下
double[] add(double[] array, double val){
double[] copy = new double[array.length + 1];
System.arraycopy(array, 0, copy, 0, array.length);
copy[array.length] = val;
return copy;
}
答案 2 :(得分:0)
你有两种方法可以做到这一点。
首先,正如@bholagabbar所说,改为使用ArrayList。
选项2,您可以将数组大小加倍,将旧数组复制到新数组中(类似于ArrayList在引擎盖下执行的操作)。顺便说一下,添加一个额外的空间不是扩展阵列的好主意。如果有10个新元素并且数组已满,则需要将数组扩展10次并将数组中的所有元素复制10次。如果在大多数情况下将数组的大小加倍,则只需扩展一次数组并复制所有元素一次。