不能添加到一個數組。你首先必須創建一個更大的數組。
int[] newArray = new int[array.length + 1];
然後,你必須上半年副本的陣列
for(int i = 0; i < midpoint; i++) {
newArray[i] = array[i];
}
然後把新的中點
newArray[midpoint] = 73;
的那麼另一半
for(int i = midpoint + 1; i < array.length; i++) {
newArray[i+1] = array[i];
}
複製然後newArray有新的中點。
從技術上講,最後三個步驟可以按任意順序完成,但按照該順序進行更具可讀性。現在你可以調用你的顯示方法,或者真的做你想做的任何事情。
有一種實用方法,稱爲arrayCopy
,可以協助移動數組元素。您可能會也可能不會被允許使用它。它的參數有點羅嗦,但比運行時典型的for-loop快一點,因爲它利用了本機代碼。
int[] newArray = new int[array.length + 1];
System.arrayCopy(array,0,newArray,0,midpoint);
newArray[midpoint] = 73;
System.arrayCopy(array,midpoint,newArray,midpoint+1,array.length - midpoint);
爲了解釋這些電話中,arraycopy用途:
System.arrayCopy(arrayFrom,
startPosInArrayFrom,
arrayTo,
startPosInArrayTo,
numElementsToCopy);
使用集合。 – user 2013-02-27 17:37:12
如果您必須使用固定大小的Java數組(比較Java的幾個類似數組的聚合類),那麼您需要創建一個比當前數組大一個元素的新數組,並適當複製條目。 – 2013-02-27 17:38:45
至少使用System.arraycopy來移動數組內容。它會自動以升序/降序模式工作,以防止覆蓋元素。 – Durandal 2013-02-27 17:39:03