我正在尝试编写一个方法来删除所有具有偶数索引的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] ?
}
}
}
答案 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;
}
}