List系列集合

List集合特点

ArrayList、LinekdList :有序,可重复,有索引。

有序:存储和取出的元素顺序一致

有索引:可以通过索引操作元素

可重复:存储的元素可以重复

特有API

List集合的遍历方式小结

迭代器

增强for循环

Lambda表达式

for循环(因为List集合存在索引)

ArrayList集合的底层原理

ArrayList底层是基于数组实现的:根据索引定位元素快,增删需要做元素的移位操作。

第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组。

示例:

List<String> list = new ArrayList<>();

list.add("a");

List集合存储的元素要超过容量怎么办?

新建一个数组,大小为原来的1.5倍,把原来的数据拷贝过来再存新元素。

LinkedList集合的底层原理

LinkedList的特点:

底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首尾操作的特有API。

LinkedList集合的特有功能:

总结

1、List系列集合特点

ArrayList、LinekdList :有序,可重复,有索引。

2、List的实现类的底层原理

ArrayList底层是基于数组实现的,根据查询元素快,增删相对慢。

LinkedList底层基于双链表实现的,查询元素慢,增删首尾元素是非常快的。

相关推荐
callJJ2 分钟前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy1 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
jinanwuhuaguo2 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup3 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
952363 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.3 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-19433 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心12213 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px3 小时前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋
rleS IONS4 小时前
SpringBoot中自定义Starter
java·spring boot·后端