例如,刪除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