List-ArrayList集合基础增强底层源码分析
2024-09-25 22:50:40
List集合基础增强底层源码分析
作者:Stanley 罗昊
【转载请注明出处和署名,谢谢!】
集合分为三个系列,分别为:List、set、map
List系列
特点:元素有序可重复
有序指的是元素的添加顺序,也就是说,元素被第一个存进去的时候,它就在第一位,这就是list集合的元素添加顺序;
通常情况下我们所说的有序有两个概念,第一个是添加顺序,第二个是大小顺序(实际上就是元素值的大小)
List下面重点关注两个实现类分别是:
ArrayList LinkedList
ArrayList
ArrayList底层实现是数组,既然是数组,那它就必然有数组的特点:查找快,增删慢;
这里简单解释一下:
首先我们建立一个数组,一旦建立一个数组,那么程序就会在内存中开辟一个连续的内存存储空间,并且它是有下标的,从0开始,一旦定义长度就无法发生改变。
现在,假设我们往数组里面存值,当然是你定义什么类型,你就存什么类型的值进去,如果现在想获取,我们直接通过下标就可以进行获取了,但是我删除元素的时候,是怎么删除的呢?
数组删除过程
假设我定义一个数组如下图:
红框内,代表我存的值,黑线上方则是他们值对应的下标
假设我现在想删除c这个元素,这个时候d就会向前移动e也会移到d的位置f也会移到e的位置上,结果后面会空出来的那个就被删掉了,结果就成了
最新文章
- Ubuntu搭建lnmp环境
- 微信小程序(微信应用号)开发ide安装解决方法
- SpringMVC框架下的拦截器
- 基于bootstrap的后台二级垂直菜单[转]
- C# dev开发过程中的山炮问题汇总
- RabbitMQ配置文件
- 用ABBYY提取文本和表格的方法
- L3-004. 肿瘤诊断
- AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
- java10 - 泛型与枚举
- MySQL常用的查询命令
- express脚手架的安装,以及ejs的语法
- 关于wordpress慢的问题
- Yii2 DetailView小部件
- 对nginx进行平滑升级
- 如何查找SHELL的进程号并杀死
- oracle 新建数据库 ,新建用户
- mysql的日期函数介绍
- Python【多线程与多进程】
- ubuntu 访问 共享 windows文件夹
热门文章
- [ubuntu]apt-get update突然出现arm package找不到
- SpringBoot加Poi仿照EasyPoi实现Excel导出
- On the Optimal Approach of Survivable Virtual Network Embedding in Virtualized SDN
- Hive管理表,外部表及外部分区表的深入探讨
- MyBatis(八)联合查询 级联属性封装结果集
- netcore应用程序部署程序到ubuntu
- Java-IO流之File操作和Properties操作
- vue 学习
- CentOS7 防火墙(firewall)的操作命令(转)
- python 中间件