当前位置:网站首页>初始 List 接口
初始 List 接口
2022-08-03 23:28:00 【掉了颗兔牙lx】
目录
1. 什么是 List
List 是 Java 中线性表定义的接口,是有序集合(也称为序列 ),是实现 Collection 接口中的一个接口。 该接口中可以精确控制列表中每个元素的插入位置。 用户可以通过索引访问元素,并搜索列表中的元素。
2. List 常见实现类

2.1 ArrayList 类
Arraylist 是动态数组,从数据结构上来讲,是基于数组实现的线性表(即顺序表)。
2.2 LinkedList 类
Linkedlist 底层使用的是双向循环链表数据结构。
** ArrayList 和 LinkedList 的区别:**
1. 底层实现不同:Arraylist 底层使用的是动态数组,Linkedlist 底层使用的是双向循环链表数据结构。
2. 时间复杂度不同:Arraylist 插入和删除元素的时间复杂度受元素位置的影响,如果尾插时间复杂度是O(1),其它时候就是O(N)。Linkedlist 插入删除不受位置影响,时间复杂度都是O(1)。
3. Arraylist 支持快速随机访问,而 Linkedlist 不支持。快速随机访问就是可以通过序号(索引位置)快速获取元素。
4. 消耗空间不同:Arraylist 使用的数组结尾时会预留一些空间,而 Linkedlist 中每个元素需要消耗比 Arraylist 更多的空间用来存放直接前驱,后继以及数据本身。
2.3 Vector 类
Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的。
3. 常用方法
增加:
add(存储的具体元素);
add(int index, 数据类型 data);
查找:
get(int index)
contains(元素)
修改:
set(int index,数据类型 修改后的数值)
删除:
remove(int index)
remove(Object o)
若 list 保存的是个 int 类型,调用 remove(int),实际上删除的是索引;删除元素,先迭代取得该元素对应的索引,再调用 remove 删除元素。
| boolean add(E e) | 尾插 e |
| void add(int index, E element) | 将 e 插入到 index 位置 |
| boolean addAll(Collection<? extends E> c) | 尾插 c 中的元素 |
| E remove(int index) | 删除 index 位置元素 |
| boolean remove(Object o) | 删除遇到的第一个 o |
| E get(int index) | 获取下标 index 位置元素 |
| E set(int index, E element) | 将下标 index 位置元素设置为 element |
| void clear() | 清空 |
| boolean contains(Object o) | 判断 o 是否在线性表中 |
| int indexOf(Object o) | 返回第一个 o 所在下标 |
| int lastIndexOf(Object o) | 返回最后一个 o 的下标 |
| List<E> subList(int fromIndex, int toIndex) | 截取部分 list |
代码示例:
public class Demo2 {
public static void main(String[] args) {
List<String> courses = new ArrayList<>();
courses.add("C 语言");
courses.add("Java SE");
courses.add("Java Web");
courses.add("Java EE");
// 和数组一样,允许添加重复元素
courses.add("C 语言");
// 按照添加顺序打印
System.out.println(courses);
// 类似数组下标的方式访问
System.out.println(courses.get(0));
System.out.println(courses);
courses.set(0, "计算机基础");
System.out.println(courses);
// 截取部分 [1, 3)
List<String> subCourses = courses.subList(1, 3);
System.out.println(subCourses);
// 重新构造
List<String> courses2 = new ArrayList<>(courses);
System.out.println(courses2);
List<String> courses3 = new LinkedList<>(courses);
System.out.println(courses3);
// 引用的转换
ArrayList<String> courses4 = (ArrayList<String>) courses2;
System.out.println(courses4);
// LinkedList<String> c = (LinkedList<String>)course2; 错误的类型
LinkedList<String> courses5 = (LinkedList<String>) courses3;
System.out.println(courses5);
// ArrayList<String> c = (ArrayList<String>)course3; 错误的类型
}
}活动地址:CSDN21天学习挑战赛
边栏推荐
- Analysys Analysis: The transaction scale of China's online retail B2C market in Q2 2022 will reach 2,344.47 billion yuan
- 设置工作模式与环境(下):探查和收集信息
- FinClip,助长智能电视更多想象空间
- SRE运维解密-什么是SRE:DevOps模型的具体实践!
- Fluorescein-PEG-CLS,胆固醇-聚乙二醇-荧光素科研试剂
- curl使用指南
- Take an example of a web worker
- Websocket multi-threaded sending message error TEXT_PARTIAL_WRITING--Use case of spin lock replacing synchronized exclusive lock
- SolidEdge ST8安装教程
- Kotlin - extension functions and operator overloading
猜你喜欢

CAS:178744-28-0,mPEG-DSPE,DSPE-mPEG,甲氧基-聚乙二醇-磷脂酰乙醇胺供应

689. 三个无重叠子数组的最大和

RSS订阅微信公众号初探-feed43

重发布实验报告

用队列模拟实现栈

简单了解下 TCP,学习握手和挥手以及各种状态到底是怎么样的
![[Paper Reading] TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Conve](/img/17/342676e20fc04ce9083c5ed443bc1d.png)
[Paper Reading] TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Conve

完全二叉树问题

单例模式使用饿汉式和懒汉式创建一定安全?很多人不知

Deep integration of OPC UA and IEC61499 (1)
随机推荐
With the rise of concepts such as metaverse and web3.0, many digital forms such as digital people and digital scenes have begun to appear.
"Digital Economy Panorama White Paper" Financial Digital User Chapter released!
What is memoization and what is it good for?
跨域的学习
The "interaction design" battle of the smart cockpit
代码重构:面向单元测试
【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
689. 三个无重叠子数组的最大和
图论-虚拟节点分层建图
密码学基础以及完整加密通讯过程解析
utils 定时器
libnet
数据分析知识点搜集(纯粹的搜集)
七夕?new一个对象
电子邮件安全或面临新威胁!
The Chinese Valentine's Day event is romantically launched, don't let the Internet slow down and miss the dark time
举一个 web worker 的例子
Testng监听器
Create function report error, prompting DECLARE definition syntax problem
Binary search tree to solve the fallen leaves problem