2012-10-16 82 views
0

我剛剛創建了一個比我以前的數組大一個的新數組,我想將第一個數組中的值複製到我的新數組中。如何將新值添加到新數組的最後一個索引?給數組添加一個值?

這是我已經試過:

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

哇,這裏有很多很棒的答案。你確定**沒有**有任何幫助嗎? – btiernay

回答

0

要將新的值設置爲最後一個索引,你可以做

times[times.length - 1] = newTime; 
0

數組索引從0..n-1去。

array[array.length - 1]將解決數組末尾的值。

1

我會建議嘗試使用對象,如java.util.List而不是原始數組。那麼你可以這樣做: times.add(newTime)它處理你的尺寸。

0

數組的最後一項總是在myArray.length - 1。在你的情況下,times數組中的最後一個元素是times[times.length - 1]。有關數組的更多信息,請參閱http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

但更重要的是:如果您嘗試更改陣列的容量,那麼最有可能使用錯誤的數據結構作爲該作業。看看Oracle的Introduction to Collections(尤其是ArrayList類,如果您需要類似數組的索引來訪問元素)。

0

爲什麼你不想要一個java.util.ArrayList這個需求?實際上,不需要管理它的大小。你只需簡單地這樣做:

List<Double> list = new ArrayList<Double>(); 
list.add(newTime); 
0

考慮Arrays.copyOf如果使用數組是一種約束:

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); 
} 
... 

需要注意的是,如果你經常做這種類型的陣列管理和不可預測的方式,您可能希望考慮Java Collection Framework類之一,如ArrayListArrayList的設計目標之一是管理大小管理,就像JVM本身管理內存管理一樣。

我開發了一個在線可執行示例here

1

爲什麼不使用System.arraycopy函數。

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

之後,你有1次增加大小的時間數組。