Java中的LinkedList是什么?
Java中的LinkedList是一种标准库中提供的数据结构,它是一种链表结构,可以高效地进行插入和删除操作。LinkedList继承自List接口,是List的一个具体实现类。
LinkedList的实现是一个双向链表,每个节点包含了指向前一个节点和后一个节点的引用。而且LinkedList允许出现null元素,并且可以存储重复元素。
LinkedList的基本操作
创建LinkedList
在Java中,创建LinkedList可以使用以下代码:
LinkedList<String> linkedList = new LinkedList<>();
LinkedList实例化后,我们可以通过add()和addAll()方法向链表中添加元素,也可以通过get()和set()方法来访问链表中的元素。下面是一些常用的操作:
// 添加元素
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
// 获取元素
String firstElement = linkedList.get(0);
String secondElement = linkedList.get(1);
String lastElement = linkedList.getLast();
// 修改元素
linkedList.set(2, "new value");
// 删除元素
linkedList.removeLast();
遍历 LinkedList
我们可以使用for loop或者while loop来遍历LinkedList:
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
for (String s : linkedList) {
System.out.println(s);
}
输出结果:
a
b
c
示例1:利用LinkedList实现FIFO队列
LinkedList可以用来实现一个FIFO(先进先出)的队列。队列中新增元素都会添加到队列尾部,而从队列中取出元素时会从队列头部开始取出。
LinkedList<String> queue = new LinkedList<>();
queue.offer("a");
queue.offer("b");
queue.offer("c");
System.out.println(queue.poll()); // a
System.out.println(queue.poll()); // b
System.out.println(queue.poll()); // c
在上面的例子中,使用队列的offer()方法添加元素,使用队列的poll()方法取出元素并删除。
示例2:利用LinkedList实现栈
与队列类似,LinkedList也可以用来实现栈,栈是一种先进后出(FILO)的数据结构。每次添加或者删除元素都在链表头部进行。
LinkedList<String> stack = new LinkedList<>();
stack.push("a");
stack.push("b");
stack.push("c");
System.out.println(stack.pop()); // c
System.out.println(stack.pop()); // b
System.out.println(stack.pop()); // a
在上面的例子中,使用栈的push()方法添加元素,使用栈的pop()方法取出元素并删除。