【发布时间】:2015-02-28 18:02:37
【问题描述】:
我正在尝试编写一个方法来删除所有具有偶数索引的 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类的 Javadoc 以查看是否有名称类似于delete或remove的方法? -
这是不可能的。您不能在不调用任何方法的情况下从列表中删除任何内容。提示:最好从列表末尾开始,否则,在索引 3 处删除后,索引 4 处的元素现在位于索引 3 处。
-
为什么只在新的列表/数组列表中插入所需的元素并将原来的元素设置为空?
-
你的任务肯定不是“不调用任何方法就这样做”。它可能是“在没有定义任何方法的情况下执行此操作”或类似的东西,但与
ArrayList交互的唯一方法是调用它的方法,因此发布的问题是不连贯的。 -
@Tom 我的错。有一瞬间,齐祖看起来像汤姆。他们称之为......暂时的精神错乱:-)