有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

第一个问题:

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

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

第二个问题:

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

条件: 我不能使用ArrayUtils

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

干杯


共 (3) 个答案

  1. # 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;
    }
    
    我建议考虑其他的选择,比如“ARARYLIST”或Thihara提出的建议。p>
  2. # 2 楼答案

    不能在数组中添加或删除

    但是,您可以将数组中的元素设置为null,或者设置一个单独的值

    如果要删除数组,则必须创建一个新数组,并指定不希望手动删除的元素

    或者,您可以向下移动元素,以便只删除元素的最后一个索引

    请查看java的ArrayList(http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html)和集合API(http://docs.oracle.com/javase/tutorial/collections/),而不是手动执行所有这些操作 )

  3. # 3 楼答案

    不能从数组中删除任何内容,因为它们是不可变的。但是,您可以创建不包含所需元素的新数组

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