要从Java中的有序链表(例如 LinkedList
)中删除元素,您可以使用以下方法之一:
使用 remove()
方法删除指定位置的元素:
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three");
// 删除位置为1的元素
list.remove(1);
使用 removeFirst()
或 removeLast()
方法删除链表的第一个或最后一个元素:
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three");
// 删除第一个元素
list.removeFirst();
// 删除最后一个元素
list.removeLast();
使用 remove(Object o)
方法删除指定值的元素。此方法将删除链表中首次出现的指定元素(从头到尾遍历链表):
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three");
// 删除值为"two"的元素
list.remove("two");
使用迭代器(Iterator
)遍历链表并删除指定元素:
import java.util.Iterator;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three");
// 创建迭代器
Iterator<String> iterator = list.iterator();
// 遍历链表并删除值为"two"的元素
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("two")) {
iterator.remove();
}
}
}
}
请注意,使用 Iterator
删除元素时,务必使用 Iterator
的 remove()
方法,而不是 LinkedList
的 remove()
方法,因为这样可以避免在遍历过程中对链表结构进行修改。