LinkedList介绍
LinkedList是Java中提供的一个双向链表的实现类,它实现了List接口,可以用来存储和操作数据。和ArrayList相比,LinkedList在插入和删除元素时性能更好,但是在访问和查找元素时性能相对较差。LinkedList内部使用链表结构存储数据,每个节点包含一个元素和指向前一个和后一个节点的指针,这样可以方便地进行元素的添加、删除和移动。
LinkedList的基本操作
创建LinkedList对象
要使用LinkedList,首先需要创建一个LinkedList对象,可以使用默认构造函数创建一个空的LinkedList对象,也可以在创建对象时初始化元素。
“`java
LinkedList
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
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
“`
示例代码
下面是一个使用LinkedList实现队列的示例代码:
“`java
import java.util.LinkedList;
public class Queue
private LinkedList
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.enqueue(“apple”);
queue.enqueue(“banana”);
queue.enqueue(“cherry”);
while (!queue.isEmpty()) {
System.out.println(queue.dequeue());
}
}
}
“`
以上代码实现了一个基于LinkedList的队列类,通过enqueue方法向队列中添加元素,通过dequeue方法从队列中移除并返回第一个元素,通过peek方法查看第一个元素,isEmpty方法判断队列是否为空,size方法获取队列的大小。
免责声明:
本站提供的资源所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关。您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。侵删请致信 E-mail:2945314004@qq.com。