在 Java 中,LinkedList 是 List 接口的实现,也是双向链表。常见的遍历方式有以下几种:
LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("C");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
⚠️ 不推荐:get(i) 在 LinkedList 中是 O(n),整体效率 O(n²)
for (String s : list) {
System.out.println(s);
}
✅ 简洁、可读性好
✅ 底层使用 Iterator
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
✅ 可在遍历时安全删除元素:
it.remove();
ListIterator<String> lit = list.listIterator();
while (lit.hasNext()) {
System.out.println(lit.next());
}
// 反向遍历
while (lit.hasPrevious()) {
System.out.println(lit.previous());
}
✅ LinkedList 特有优势(可前后遍历)
list.forEach(System.out::println);
或:
list.forEach(s -> System.out.println(s));
list.stream().forEach(System.out::println);
| 场景 | 推荐方式 |
|---|---|
| 简单遍历 | 增强 for / forEach |
| 需要删除元素 | Iterator |
| 需要双向遍历 | ListIterator |
| 函数式处理 | Stream |
如果你有具体使用场景(如删除、查找、性能要求),我可以给出更合适的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。