Java 是否向数组中添加值?

Java 是否向数组中添加值?,java,arrays,Java,Arrays,我刚刚创建了一个比以前的数组大一点的新数组,我想将第一个数组中的值复制到新数组中。如何向新数组的最后一个索引添加新值 这就是我尝试过的: public void addTime(double newTime) { if (numOfTimes == times.length) increaseSize(); times[numOfTimes] = newTime; } 要将新值设置为最后一个索引,可以执行以下操作 times[times.length - 1]

我刚刚创建了一个比以前的数组大一点的新数组,我想将第一个数组中的值复制到新数组中。如何向新数组的最后一个索引添加新值

这就是我尝试过的:

public void addTime(double newTime) {
    if (numOfTimes == times.length)
        increaseSize();
    times[numOfTimes] = newTime;
}

要将新值设置为最后一个索引,可以执行以下操作

times[times.length - 1] = newTime;

数组索引从
0..n-1
开始


array[array.length-1]
将处理数组末尾的值。

我建议尝试使用对象,如
java.util.List
,而不是原始数组。然后你可以做:
次。添加(newTime)
并为您处理大小调整。

数组的最后一项始终位于
myArray.length-1
。在您的例子中,times数组的最后一个元素是
times[times.length-1]
。有关阵列的更多信息,请参阅


但更重要的是:如果您试图更改阵列的容量,则很可能使用了错误的数据结构。看看Oracle(如果需要类似数组的索引来访问元素,尤其是类)。

为什么不需要java.util.ArrayList来满足此要求?实际上,不需要管理它的大小。您只需简单地执行以下操作:

 List<Double> list = new ArrayList<Double>();
 list.add(newTime);
List List=new ArrayList();
list.add(newTime);
考虑使用阵列是否是一种约束:

import java.util.Arrays;
...
private void increaseSize() {
   // Allocate new array with an extra trailing element with value 0.0d
   this.times = Arrays.copyOf( times, times.length + 1 );
}
...

注意,如果您经常以不可预测的方式执行这种类型的数组管理,您可能需要考虑其中的一个类,例如。

ArrayList
的设计目标之一是管理大小管理,就像JVM本身管理内存管理一样


我开发了一个在线可执行示例。

为什么不使用System.arraycopy函数呢

increaseSIze()
{
   double [] temp = new double[times.lebgth+1];
   System.arrayCopy(times,0,temp,0,times.length);
   times=temp;
}

在这之后,您将有一个大小增加了1的times数组。

哇,这里有很多很棒的答案。你确定他们都帮不了什么忙吗?