第一个问题:
如何从数组中删除?基本上,该参数将指定将删除哪个索引。我将不得不在一个新数组中更新它并返回它。
int[] removeFromArray(int[] array, int index) {
int[] newArray = array
}
第二个问题:
我猜同样的概念,但我必须添加到一个数组中。
条件:我不能使用ArrayUtils
等。
我猜这可以使用for
循环来完成?
干杯
如果您真的想从数组中删除元素,您可以执行以下操作
static int[] removeFromArray(int[] s, int idx)
{
int[] dest = new int[s.length-1];
System.arraycopy(s, 0, dest, 0, idx);
System.arraycopy(s, idx+1, dest, idx, s.length-idx-1);
return dest;
}
我建议考虑其他选项,例如“ArrayList”或 Thihara 提出的建议。
您不能在数组中添加或删除。
但是,您可以将数组中的元素设置为null
,或设置单独的值。
如果要删除数组,则必须创建一个新数组并手动分配不想删除的元素。
或者,您可以向下移动元素,以便仅删除元素的最后一个索引。
而不是手动完成所有这些,请查看 java 的 ArrayList( http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html ) 和 Collection API( http://docs.oracle .com/javase/tutorial/collections/ )
您不能从数组中删除任何内容,因为它们是不可变的。虽然,您可以创建一个不包含所需元素的新数组
public int[] removeFromArray(int[] array,int index){
int[] newArray = new int[array.length - 1];
for(int i = 0;i<array.length;i++){
if(i == index){
continue;
}else{
if(i>index && i!= (index+1)){
newArray[i-1] = array[i];
}else{
newArray[i] = array[i];
}
}
}
return newArray;
}
请澄清添加数组的意思。您是否想说将两个数组的所有元素的值相加并显示它们?
假设您想将int[]
数组添加在一起,您可以按如下方式进行:
public int[] addTwoArrays(int[] array1,int[] array2){
if(array1.length != array2.length){
System.out.println("Can not add arrays of different lengths.");
return null;
}else{
int[] additionArray = new int[array1.length]; // or array[2].length cause they are the same length;
for(int i = 0;i<array1.length;i++){
additionArray[i] = array1[i] + array2[i];
}
}
return additionArray;
}