LinkedList操作指南

LinkedList介绍

LinkedList是Java中提供的一个双向链表的实现类,它实现了List接口,可以用来存储和操作数据。和ArrayList相比,LinkedList在插入和删除元素时性能更好,但是在访问和查找元素时性能相对较差。LinkedList内部使用链表结构存储数据,每个节点包含一个元素和指向前一个和后一个节点的指针,这样可以方便地进行元素的添加、删除和移动。

LinkedList的基本操作

创建LinkedList对象

要使用LinkedList,首先需要创建一个LinkedList对象,可以使用默认构造函数创建一个空的LinkedList对象,也可以在创建对象时初始化元素。

“`java
LinkedList linkedList = new LinkedList<>(); // 创建一个空的LinkedList对象

LinkedList linkedList = new LinkedList<>(Arrays.asList(“apple”, “banana”, “cherry”)); // 创建一个包含指定元素的LinkedList对象
“`

添加元素

可以使用`add()`方法在链表的末尾添加一个元素,也可以使用`addFirst()`和`addLast()`方法在链表的头部或尾部插入一个元素。

“`java
linkedList.add(“apple”); // 在链表的末尾添加一个元素
linkedList.addFirst(“orange”); // 在链表的头部插入一个元素
linkedList.addLast(“grape”); // 在链表的尾部插入一个元素
“`

获取元素

可以使用`get()`方法根据索引获取链表中的元素。注意,索引从0开始,如果索引超出了链表的范围,会抛出`IndexOutOfBoundsException`异常。

“`java
String fruit = linkedList.get(2); // 获取索引为2的元素
“`

修改元素

使用`set()`方法可以根据索引修改链表中的元素。同样地,如果索引超出了链表的范围,也会抛出`IndexOutOfBoundsException`异常。

“`java
linkedList.set(1, “kiwi”); // 将索引为1的元素修改为”kiwi”
“`

删除元素

可以使用`remove()`方法根据索引或者元素值删除链表中的元素。使用索引删除元素时,如果索引超出了链表的范围,会抛出`IndexOutOfBoundsException`异常,而使用元素值删除元素时,如果链表中不存在该元素,返回false。

“`java
linkedList.remove(2); // 删除索引为2的元素
linkedList.remove(“apple”); // 删除第一个值为”apple”的元素
“`

遍历元素

可以使用增强的`for`循环或者迭代器来遍历链表中的元素。

“`java
for (String fruit : linkedList) {
System.out.println(fruit);
}

Iterator iterator = linkedList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
“`

示例代码

下面是一个使用LinkedList实现队列的示例代码:

“`java
import java.util.LinkedList;

public class Queue {
private LinkedList list;

public Queue() {
list = new LinkedList<>();
}

public void enqueue(E element) {
list.addLast(element);
}

public E dequeue() {
return list.removeFirst();
}

public E peek() {
return list.getFirst();
}

public boolean isEmpty() {
return list.isEmpty();
}

public int size() {
return list.size();
}
}

public class Main {
public static void main(String[] args) {
Queue queue = new Queue<>();
queue.enqueue(“apple”);
queue.enqueue(“banana”);
queue.enqueue(“cherry”);

while (!queue.isEmpty()) {
System.out.println(queue.dequeue());
}
}
}
“`

以上代码实现了一个基于LinkedList的队列类,通过enqueue方法向队列中添加元素,通过dequeue方法从队列中移除并返回第一个元素,通过peek方法查看第一个元素,isEmpty方法判断队列是否为空,size方法获取队列的大小。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享