List集合基础增强底层源码分析

作者:Stanley 罗昊

转载请注明出处和署名,谢谢!

集合分为三个系列,分别为:List、set、map

List系列

特点:元素有序可重复

有序指的是元素的添加顺序,也就是说,元素被第一个存进去的时候,它就在第一位,这就是list集合的元素添加顺序;

通常情况下我们所说的有序有两个概念,第一个是添加顺序,第二个是大小顺序(实际上就是元素值的大小)

List下面重点关注两个实现类分别是:

ArrayList LinkedList

ArrayList

ArrayList底层实现是数组,既然是数组,那它就必然有数组的特点:查找快,增删慢;

这里简单解释一下:

首先我们建立一个数组,一旦建立一个数组,那么程序就会在内存中开辟一个连续的内存存储空间,并且它是有下标的,从0开始,一旦定义长度就无法发生改变

现在,假设我们往数组里面存值,当然是你定义什么类型,你就存什么类型的值进去,如果现在想获取,我们直接通过下标就可以进行获取了,但是我删除元素的时候,是怎么删除的呢?

数组删除过程

假设我定义一个数组如下图:

红框内,代表我存的值,黑线上方则是他们值对应的下标

假设我现在想删除c这个元素,这个时候d就会向前移动e也会移到d的位置f也会移到e的位置上,结果后面会空出来的那个就被删掉了,结果就成了

最新文章

  1. Ubuntu搭建lnmp环境
  2. 微信小程序(微信应用号)开发ide安装解决方法
  3. SpringMVC框架下的拦截器
  4. 基于bootstrap的后台二级垂直菜单[转]
  5. C# dev开发过程中的山炮问题汇总
  6. RabbitMQ配置文件
  7. 用ABBYY提取文本和表格的方法
  8. L3-004. 肿瘤诊断
  9. AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
  10. java10 - 泛型与枚举
  11. MySQL常用的查询命令
  12. express脚手架的安装,以及ejs的语法
  13. 关于wordpress慢的问题
  14. Yii2 DetailView小部件
  15. 对nginx进行平滑升级
  16. 如何查找SHELL的进程号并杀死
  17. oracle 新建数据库 ,新建用户
  18. mysql的日期函数介绍
  19. Python【多线程与多进程】
  20. ubuntu 访问 共享 windows文件夹

热门文章

  1. [ubuntu]apt-get update突然出现arm package找不到
  2. SpringBoot加Poi仿照EasyPoi实现Excel导出
  3. On the Optimal Approach of Survivable Virtual Network Embedding in Virtualized SDN
  4. Hive管理表,外部表及外部分区表的深入探讨
  5. MyBatis(八)联合查询 级联属性封装结果集
  6. netcore应用程序部署程序到ubuntu
  7. Java-IO流之File操作和Properties操作
  8. vue 学习
  9. CentOS7 防火墙(firewall)的操作命令(转)
  10. python 中间件