如何在数组上添加或删除值?

时间:2013-05-20 05:20:43

标签: java arrays

第一个问题:

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

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

第二个问题:

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

条件: 我不能使用ArrayUtils等等。

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

干杯

3 个答案:

答案 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;
}