当前位置:首页 > 后端开发 > ArrayList源码

ArrayList源码

7个月前 (05-22)20

ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。

 

类里面的属性:

public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
//默认大小
private static final int DEFAULT_CAPACITY = 10;
//空对象数组
private static final Object[] EMPTY_ELEMENTDATA = {};
默认空对象数组
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
元素数组
transient Object[] elementData; // non-private to simplify nested class access
//实际元素的容量
private int size;
//int容纳的最大容量
    private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
}




三种构造函数:

构造函数1:传入的数值为集合的容量

ArrayList源码 _ Java侠

 构造函数2:无参,赋值空的对象数组

ArrayList源码 _ Java侠

 


构造函数3:传入一个集合(这里使用了泛型)

ArrayList源码 _ Java侠

 

 

方法:

 

   将集合容量和实际容量变为一样

ArrayList源码 _ Java侠

 

 确认容量的方法

ArrayList源码 _ Java侠

 

 ArrayList源码 _ Java侠

 



判断需不需要扩容的方法

ArrayList源码 _ Java侠

 


扩容数组的方法:

ArrayList源码 _ Java侠

 

 

 

容量超过最大容量,赋值最大的容量方法

ArrayList源码 _ Java侠

 

 返回实际容量

ArrayList源码 _ Java侠

 

判断实际容量是否为空方法

ArrayList源码 _ Java侠

 判断是否包含某个元素的方法

ArrayList源码 _ Java侠

 

 查找某个元素的位置方法:

 

ArrayList源码 _ Java侠

 

 

 查找某个元素最后出现位置方法:

ArrayList源码 _ Java侠

 

 

 克隆集合的方法:

ArrayList源码 _ Java侠

 复制集合的方法:

 

 

ArrayList源码 _ Java侠

 

 

 泛型复制数组的方法:

 ArrayList源码 _ Java侠

 

 获取某个位置的元素方法:

 ArrayList源码 _ Java侠

 

 获取某个位置元素的方法:

ArrayList源码 _ Java侠

 设置某个位置元素的值:

 

 ArrayList源码 _ Java侠

 




在末尾田家庵元素

ArrayList源码 _ Java侠

 指定位置添加元素

 
  

ArrayList源码 _ Java侠

 

删除指定位置元素

ArrayList源码 _ Java侠

 

删除指定元素

ArrayList源码 _ Java侠

 还没研究过:

 

ArrayList源码 _ Java侠

 清除所有元素

ArrayList源码 _ Java侠

 

添加一个集合:



ArrayList源码 _ Java侠

 

指定位置添加元素

ArrayList源码 _ Java侠

 移除指定范围的下表值

 
  

ArrayList源码 _ Java侠

 检查是否越界

 
  

ArrayList源码 _ Java侠

 

添加是否越界:

ArrayList源码 _ Java侠

 返回下表和容量

 
  

ArrayList源码 _ Java侠

 

 

移除所有

ArrayList源码 _ Java侠

 测试集合是否有交集

ArrayList源码 _ Java侠

 

 

 判断交集

ArrayList源码 _ Java侠

 

序列化对象

ArrayList源码 _ Java侠

 

 

 

     异常情况:

ArrayList源码 _ Java侠

 

 

 遍历:

 ArrayList源码 _ Java侠

 

 排序:

ArrayList源码 _ Java侠

 

 

 

 参考:

https://www.cnblogs.com/zhangyinhua/p/7687377.html

 

 

 

 






作者:远方的人111
来源链接:https://www.cnblogs.com/chen-hui/p/11062261.html

“ArrayList源码” 的相关文章

HTTP请求报文和HTTP响应报文

HTTP请求报文和HTTP响应报文

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。 HTTP请求报文 一个HTTP请求报文...

如何进阶成为Java和Android架构师?

如何进阶成为Java和Android架构师?

Java和Android架构的知识星球第二期火热进行中,知识分享、技术交流,一大波高质量学习视频和资料正在袭来~现在有近1000球友在学习交流~欢迎大家踊跃加入!...

MemCached用法

所需要的jar包:          com.danga.MemCached.MemCachedClient          com.danga.MemCached.Sock...

java 输入流异常处理并重新输入,无限循环抛异常问题处理

最近发现了一个问题,使用Scanner输入流时,如果做了异常处理,nextInt输入有误抛出异常时,循环在次输入会出现无限循环抛出异常,直至栈溢出,程序崩掉。这是什么原因呢?...

zookeeper-3.4.14安装

1.官方下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar...

Solr索引配置

Solr索引配置

Solr主配置文件   schema.xml,在SolrCore的conf目录下,它是Solr数据表配置文件,它定义了加入索引的数据的数据类型的。主要包括FieldTypes、Fi...

Java中Map常用方法总结以及遍历方式的汇总

一、整理:      看到array,就要想到角标。      看到link,就要想到first,last。...

JVM垃圾回收机制

1.什么是垃圾回收机制       垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一...

shiro(2)-架构与配置

shiro(2)-架构与配置

认证就是用户确认身份的过程,确认登录的用户身份能够操作的内容。 使用shiro认证分为以下几个步骤: 1,得到主体的认证和凭据。 // let's login...

solr6.6 配置mysql数据源

最近业务上需要开始使用solr,从官网上下载的6.6发现网上关于6.6的资料比较少,甚至solr  in action 中也没有对应的示例,所以一路踩坑终于成功...