Collections-Arraylist源码解读(一)

举报
知识浅谈 发表于 2022/10/01 12:46:13 2022/10/01
【摘要】 Collections-Arraylist源码解读(一)

在这里插入图片描述

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈

Collections-Arraylist源码解读(一)总结
🤞这次都给他拿下🤞

正菜来了⛳⛳⛳

🎈类中变量

👉transient Object[] elementData;
elementData:
ArrayList对象底层的数组就是这个变量。

👉private static final long serialVersionUID = 8683452581122892189L;
serialVersionUID 
这个变量用于标记这个ArrayList类的序列化和反序列化时候的一个标志,有这个的时候才会在序列化的时候带有这个变量,反序列化的时候才带有这个变量就可以与指定的反序列化的类对象比较。

👉private static final int DEFAULT_CAPACITY = 10;
DEFAULT_CAPACITY 
用于标记创建一个Arraylist内部数组的大小,这个是在初始创建ArrayList的时候,没有指定大小,并且第一次添加元素的时候,会把ArrayList底层的数组大小设置为这个变量的值。

👉private static final Object[] EMPTY_ELEMENTDATA = {};
EMPTY_ELEMENTDATA 
创建一个ArrayList对象的时候,指定参数为0的时候,elementData指向这个元素。

👉private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
DEFAULTCAPACITY_EMPTY_ELEMENTDATA 
这个和上边有点像,但是两者是有区别的,这个是在创建ArrayList对象的时候,没有指定大小的时候,elementData指向这个元素,当第一次添加元素的时候,会把elementData与DEFAULTCAPACITY_EMPTY_ELEMENTDATA 对比,如果elementData之前指向的是这个,就初始化容量为10。

👉private int size;
size:elementData包含的数组的数量的多少,不是指的数组的大小,而是指的这个数组中的元素的个数,因为创建ArrayList的时候,底层数组的大小和数组中内容是不一样的,一般是大于等于数组中的内容,因为涉及到扩容等问题。

🍚总结

以上为ArrayList中的属性变量对应的含义,希望对你有所帮助,下一篇:Arraylist中各个属性方法的含义。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。