0

第一个问题:

如何从数组中删除?基本上,该参数将指定将删除哪个索引。我将不得不在一个新数组中更新它并返回它。

int[] removeFromArray(int[] array, int index) {
    int[] newArray = array
}

第二个问题:

我猜同样的概念,但我必须添加到一个数组中。

条件:我不能使用ArrayUtils等。

我猜这可以使用for循环来完成?

干杯

4

3 回答 3

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 提出的建议。

于 2013-05-20T05:37:56.477 回答
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/

于 2013-05-20T05:27:09.477 回答
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;
}
于 2013-05-20T05:27:39.020 回答