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

时间:2015-02-28 18:02:37

标签: java arraylist

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

示例:

{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] ?

        }
    } 
}

2 个答案:

答案 0 :(得分:0)

由于您不想使用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 :(得分:0)

这样可以尝试:

当前为1并且每次进入循环以存储奇数元素时将增加2

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