第一个问题:
如何从数组中删除?基本上,该参数将指定将删除哪个索引。 我将不得不在一个新数组中更新它并返回它。
int[] removeFromArray(int[] array, int index) {
int[] newArray = array
}
第二个问题:
我猜相同的概念,但我必须添加到数组中。
条件:
我不能使用ArrayUtils
等等。
我猜这可以使用for
循环来完成?
干杯
答案 0 :(得分:1)
如果你真的想从数组中删除元素,可以执行以下操作
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提出的建议。
答案 1 :(得分:0)
您无法在阵列中添加或删除。
但是,您可以将数组中的元素设置为null
,或者设置单独的值。
如果要删除数组,则必须创建一个新数组并分配不想手动删除的元素。
或者,您可以向下移动元素,这样只会删除元素的最后一个索引。
请不要手动执行所有操作,请查看java的ArrayList(http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html)和Collection API(http://docs.oracle.com/javase/tutorial/collections/ )
答案 2 :(得分:0)
您无法从数组中删除任何内容,因为它们是不可变的。虽然,您可以创建一个不包含所需元素的新数组
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;
}