目录
一、定义
二、作用
1、存储数据
2、动态扩容
3、提供方便的操作方法
三、使用场景
1.当你需要频繁地在列表的开头或结尾添加或删除元素时。
2.当你不需要按索引快速访问元素时,因为LinkedList访问元素需要从头开始遍历
3.当你不需要线程安全的数据结构时。
四、语法及示例
1、创建LinkedList
2、添加元素
3、获取元素
4、修改元素
5、删除元素
6、获取/计算大小
7、遍历元素
8、判断是否包含某个元素
9、清空LinkedList
五、完整实例
一、定义
LinkedList是Java中的一个类,"它实现了List接口和Deque接口,可以用来存储一系列动态的、可重复的元素。
与ArrayList不同,LinkedList是基于链表实现的,每个元素(节点)包含数据和指向下一个节点的引用。
二、作用
1、存储数据
可以存储任意类型的对象,并且每个元素都有一个前驱和后继。
2、动态扩容
不需要预先指定大小,"它会根据需要自动增加或减少节点。
3、提供方便的操作方法
比如添加、删除、修改、查找等,特别是在列表的开头和结尾操作特别高效。
三、使用场景
1.当你需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
2.当你不需要按索引快速访问元素时,因为LinkedList访问元素需要从头开始遍历
3.当你不需要线程安全的数据结构时。
四、语法及示例
1、创建LinkedList
除了String引用类型还有其他的基本数据类型对应的包装类(如下表)
【注意:LinkedList<E>,E只能是引用数据类型】
基本类型 | 引用类型 |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
java">import java.util.LinkedList; // 引入LinkedList类
LinkedList<String> list = new LinkedList<String>(); // 创建一个字符串类型的LinkedList
2、添加元素
java">list.add("苹果"); // 在末尾添加一个元素
list.addFirst("香蕉"); // 在开头添加一个元素
list.addLast("橘子"); // 在末尾添加一个元素,与add()方法相同
3、获取元素
java">String firstFruit = list.getFirst(); // 获取第一个元素
String lastFruit = list.getLast(); // 获取最后一个元素
String fruit = list.get(1); // 获取索引为1的元素
4、修改元素
java">list.set(0, "葡萄"); // 修改索引为0的元素
5、删除元素
java">list.removeFirst(); // 删除第一个元素
list.removeLast(); // 删除最后一个元素
list.remove(1); // 删除索引为1的元素
list.remove("苹果"); // 删除第一个遇到的"苹果"元素
6、获取/计算大小
java">int size = list.size(); // 获取LinkedList的大小
7、遍历元素
java">for (String fruit : list) {
System.out.println(fruit); // 逐个输出元素
}
8、判断是否包含某个元素
java">boolean contains = list.contains("苹果"); // 判断是否包含"苹果"元素
9、清空LinkedList
java">list.clear(); // 清空LinkedList中的所有元素
五、完整实例
java">import java.util.LinkedList;
public class Tets {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<String>();
// 添加元素
fruits.add("苹果");
fruits.addFirst("香蕉");
fruits.addLast("橘子");
// 输出所有元素
System.out.println("水果列表:" + fruits);
// 修改元素
fruits.set(1, "葡萄");
// 删除元素
fruits.removeFirst();
fruits.remove("橘子");
// 遍历元素
System.out.println("修改后的水果列表:");
for (String fruit : fruits) {
System.out.println(fruit);
}
// 获取大小
System.out.println("水果列表大小:" + fruits.size());
}
}