ArrayList 集合详解

特点:

1.底层数据结构是数组
2.默认数组大小是10
3.保证了数据的有序性,按照插入顺寻来存储
4.查询效率高,基于数组索引来定位数据
5.集合扩容每次扩容为原大小的1.5倍.
6.集合数据可以重
ArrayList的继承关系

方法

trimToSize():作用是去掉预留元素的位置,内存紧张的时候用
ensureCapacity(int n):如果ArrayList中添加大量元素,可用此方法增加效率,一次性扩容.
grow(int m):以1.5倍扩容

int oldCapacity = elementData.length;
int newCapacity = oldCapacity+(oldCapacity >>1);

contains(Object o):返回boolean值,该链表中是否有O
indexOf(Object o):返回o在ArrayList中第一次出现的位置,没有就返回-1.
lastIndexOf(Object o):返回o在ArrayList中最后一次出现的位置,没有就返回-1
clone():克隆,返回ArrayList,会产生新对象
get(int i):得到i号索引位置的值,先回进行rangeCheck(i)
set(int i,E e):这是在i号位置用e进行replace,然后返回原来的elem.
add(E e):先会进行ensureCapacityInternal(size+1)//modCount change
add(int i,E e):先会进行rangeCheck 再ensureCapacityInternal(size+1) //modCount change

源码分析

remove(int i):
在这里插入图片描述
numMoved是要进行移位的元素个数,运用数组拷贝进行移位

addAll(Collection <? extends E> c):
在这里插入图片描述
先将容器C里面的数据转换成数组,然后运用数组拷贝
从a的0号开始 拷贝到elementData的后面,拷贝a.length个

addAll(int i,Collection c):
将指定容器从i号位置开始进行添加.

求并集

在这里插入图片描述
在这里插入图片描述

求交集

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值