Java的LinkedList是一种双向链表的数据结构,它实现了List接口,可以存储任意类型的数据。
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。
链表可分为单向链表和双向链表。
Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。
以下情况使用 ArrayList :
频繁访问列表中的某一个元素。
只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
你需要通过循环迭代来访问列表中的某些元素。
需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
下面是一些常见的使用LinkedList的示例:
import java.util.LinkedList;
public class JavaLinkedListExample {
public static void main(String[] args) {
// 创建一个 LinkedList 对象
LinkedList<String> linkedList = new LinkedList<>();
// 添加元素到 LinkedList
linkedList.add("张三");
linkedList.add("李四");
linkedList.add("王五");
// 打印 LinkedList 的内容
System.out.println("输出结果: " + linkedList);
// 获取 LinkedList 大小
int size = linkedList.size();
System.out.println("大小: " + size);
// 检查 LinkedList 是否为空
boolean isEmpty = linkedList.isEmpty();
System.out.println("是否为空: " + isEmpty);
// 获取第一个元素
String firstElement = linkedList.getFirst();
System.out.println("第一个元素: " + firstElement);
// 获取最后一个元素
String lastElement = linkedList.getLast();
System.out.println("最后一个元素: " + lastElement);
// 在指定位置插入元素
linkedList.add(1, "Grapes");
System.out.println("在索引 1 插入新元素后的 LinkedList: " + linkedList);
// 删除指定位置的元素
linkedList.remove(2);
System.out.println("移除索引 2 的元素后的 LinkedList: " + linkedList);
// 替换指定位置的元素
linkedList.set(0, "Mango");
System.out.println("替换索引 0 的元素后的 LinkedList: " + linkedList);
// 清空 LinkedList
linkedList.clear();
System.out.println("清空 LinkedList 后的结果: " + linkedList);
}
}
运行结果:
上述示例演示了如何使用Java LinkedList集合来添加、删除、替换和访问元素。还演示了如何获取LinkedList的大小、检查是否为空以及清空LinkedList。注意,LinkedList可以在任意位置插入和删除元素,与ArrayList相比具有更好的性能。