在 Java 中,LinkedList 是 java.util 包下提供的双向链表实现,使用起来非常方便。下面从创建、添加、遍历、常用操作几个方面说明。
import java.util.LinkedList;
LinkedList<String> list = new LinkedList<>();
LinkedList<String> list = new LinkedList<>(
List.of("A", "B", "C")
);
list.add("Java"); // 尾部添加
list.addFirst("Head"); // 头部添加
list.addLast("Tail"); // 尾部添加(同 add)
String first = list.getFirst();
String last = list.getLast();
String item = list.get(2); // 按索引访问(效率较低)
⚠️ 注意:
LinkedList 按索引访问是 O(n),不适合频繁随机访问。
for (String s : list) {
System.out.println(s);
}
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
list.removeFirst();
list.removeLast();
list.remove("Java");
list.remove(0); // 按索引删除
| 方法 | 说明 |
|---|---|
add() |
添加元素 |
addFirst() / addLast() |
头/尾插入 |
getFirst() / getLast() |
获取头/尾 |
removeFirst() / removeLast() |
删除头/尾 |
size() |
长度 |
isEmpty() |
是否为空 |
contains() |
是否包含 |
import java.util.LinkedList;
public class Demo {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>();
list.add(10);
list.add(20);
list.addFirst(5);
for (int num : list) {
System.out.println(num);
}
}
}
| 特性 | LinkedList | ArrayList |
|---|---|---|
| 插入/删除 | 快(O(1)) | 慢(可能 O(n)) |
| 随机访问 | 慢 | 快 |
| 内存占用 | 较大 | 较小 |
如果你是想手动实现一个 LinkedList(底层链表结构),我也可以给你写一个完整示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。