Java小白入门教程:LinkedList

embedded/2025/2/5 9:44:34/

目录

一、定义

二、作用

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只能是引用数据类型】

基本类型引用类型
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
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());}
}


http://www.ppmy.cn/embedded/159714.html

相关文章

关于matlab中rotm2eul的注释错误问题

在这里&#xff0c;写的是默认的旋转矩阵的顺序为‘ZYX’&#xff0c;对应的旋转轴的顺序为Z、Y、X。 包括网页上写的是 但是实际上&#xff0c;在实际的应用中&#xff0c;旋转的顺序应该是&#xff0c;X、Y、Z轴的顺序 即RRzRyRx 但是在矩阵运算中&#xff0c;由于YRzRyRx*X…

在Vue 3中使 echarts 图表宽度自适应变化

需求&#xff1a; 有现在这样一段使用 echarts 的 vue3 代码&#xff1a; <template><div ref"chartRef" style"width: 600px; height: 400px;"></div> </template><script setup> import {getCurrentInstance, onMounted…

kaggle视频行为分析1st and Future - Player Contact Detection

这次比赛的目标是检测美式橄榄球NFL比赛中球员经历的外部接触。您将使用视频和球员追踪数据来识别发生接触的时刻&#xff0c;以帮助提高球员的安全。两种接触&#xff0c;一种是人与人的&#xff0c;另一种是人与地面&#xff0c;不包括脚底和地面的&#xff0c;跟我之前做的这…

大一计算机的自学总结:数据结构设计相关题

前言 说实在的&#xff0c;感觉这种设计数据结构的题比链表题还要ex&#xff0c;尤其是当哈希表和链表一起上的时候&#xff01; 一、设计有setAll功能的哈希表 #include <bits/stdc.h> using namespace std;int cnt0,setAllTime0,setAllValue; map<int,pair<in…

九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)

九. Redis 持久化-RDB(详细讲解说明&#xff0c;一个配置一个说明分析&#xff0c;步步讲解到位) 文章目录 九. Redis 持久化-RDB(详细讲解说明&#xff0c;一个配置一个说明分析&#xff0c;步步讲解到位)1. RDB 概述2. RDB 持久化执行流程3. RDB 的详细配置4. RDB 备份&恢…

[ Spring ] Spring Boot Mybatis++ 2025

文章目录 StructureMyBatis Controller AbilitiesConfigure Plugins and RepositoriesApply Plugins and Add DependenciesMyBatis Spring PropertiesMyBatis ApplicationMyBatis BeansMyBatis MapperMyBatis Query Builder Structure this blog introduce 3 ways using mybat…

【归属地】批量号码归属地查询按城市高速的分流,基于WPF的解决方案

在现代商业活动中&#xff0c;企业为了提高营销效果和资源利用效率&#xff0c;需要针对不同地区的市场特点开展精准营销。通过批量号码归属地查询并按城市分流&#xff0c;可以为企业的营销决策提供有力支持。 短信营销&#xff1a;一家连锁餐饮企业计划开展促销活动&#xf…

数据结构与算法——二分查找

二分查找算法常用于在具有单调性的数组中&#xff0c;以logn的时间复杂度快速查找某个目标值是否存在于该数组中&#xff0c;如果存在还能够返回目标值在数组中的索引下标&#xff0c;常见的二分查找算法有开区间写法、半开区间写法以及闭区间写法&#xff0c;这三种写法的区别…