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底层基于双链表实现的,查询元素慢,增删首尾元素是非常快的。

相关推荐
无敌最俊朗@2 小时前
STL-vector面试剖析(面试复习4)
java·面试·职场和发展
PPPPickup3 小时前
easychat项目复盘---获取联系人列表,联系人详细,删除拉黑联系人
java·前端·javascript
LiamTuc3 小时前
Java构造函数
java·开发语言
长安er3 小时前
LeetCode 206/92/25 链表翻转问题-“盒子-标签-纸条模型”
java·数据结构·算法·leetcode·链表·链表翻转
菜鸟plus+3 小时前
N+1查询
java·服务器·数据库
我要添砖java3 小时前
《JAVAEE》网络编程-什么是网络?
java·网络·java-ee
CoderYanger3 小时前
动态规划算法-01背包问题:50.分割等和子集
java·算法·leetcode·动态规划·1024程序员节
菜鸟233号5 小时前
力扣513 找树左下角的值 java实现
java·数据结构·算法·leetcode
Neoest6 小时前
【EasyExcel 填坑日记】“Syntax error on token )“: 一次编译错误在逃 Runtime 的灵异事件
java·eclipse·编辑器
自在极意功。6 小时前
Web开发中的分层解耦
java·microsoft·web开发·解耦