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