如何删除 Java ArrayList 中具有偶数索引的所有元素

How to Delete All Elements That Have an Even Index in Java ArrayList

我正在尝试编写一个方法来删除所有具有偶数索引的 ArrayList 元素。我想在不使用任何辅助数据结构的情况下完成此操作。我在想我应该将所有偶数索引项设置为空。然后,我将尝试删除所有空元素。

示例:

{1, 2, 3, 4, 5, 6}

应该改成这个

{1, 3, 5} 

我能够找到偶数位置,但我仍然不知道如何将它们从 ArrayList 中删除。

public void removeEvenElems() {

    for (int i = 0; i < size; i++) {
        if (i % 2 == 0) {
            //how to delete array[i] ?

        }
    } 
}

由于您不想使用 ArrayList 或调用任何其他函数,此代码会创建一个新数组

public void removeEvenElems(int[] array) {
    int[] temp = new int[array.length];
    int spot = 0;
    for (int i = 0; i < array.length; i++) {
        if (i % 2 == 1) {
            temp[spot] = array[i]; 
            spot++;
        }
    }
    System.arraycopy( temp, 0, array, 0, spot+1 );
}

这会奏效,试试吧:

当前为1,每次进入循环都会增加2,用于存储奇数元素

public void removeEvenElems() {
    current = 1;
    for (int i = 0; i < size; i++) {
        nodes[i] = nodes[current];
        size--;
        current = current + 2;
    }
}