例如,删除5,11 21 5 5 31 41
,删除后[ 11 21 31 41 ]
。如何删除链接列表Java中的元素,即使有重复?
此方法将查找我需要在链接列表中删除的项目,并删除该项目的任何重复项目。
例如,删除5,11 21 5 5 31 41
,删除后[ 11 21 31 41 ]
。如何删除链接列表Java中的元素,即使有重复?
此方法将查找我需要在链接列表中删除的项目,并删除该项目的任何重复项目。
我写了一些测试代码。结果如下。
[11, 21, 5, 5, 31, 41]
[11, 21, 31, 41]
这样做的诀窍是从后面到前面迭代列表。这样,你不必担心调整索引。
更简单的方法是使用list.remove(value)方法。但是,如果您在Java对象中检查一个字段而不是Integer,则此方法非常有效,因为我在此示例中正在执行此操作。
package com.ggl.testing;
import java.util.ArrayList;
import java.util.List;
public class ListRemove {
public static void main(String[] args) {
int[] values = { 11, 21, 5, 5, 31, 41 };
List<Integer> list = createList(values);
System.out.println(list);
new ListRemove().remove(list, 5);
System.out.println(list);
}
private static List<Integer> createList(int[] values) {
List<Integer> list = new ArrayList<>(values.length);
for (int index = 0; index < values.length; index++) {
list.add(Integer.valueOf(values[index]));
}
return list;
}
public void remove(List<Integer> list, int value) {
for (int index = list.size() - 1; index >= 0; index--) {
if (list.get(index) == value) {
list.remove(index);
}
}
}
}
你可以发布你的代码,所以我们可以看到你做了什么? – Gendarme