Java中的LinkedList是什么?

  • Post category:Java

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()方法取出元素并删除。