不能添加到一个数组。你首先必须创建一个更大的数组。
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