使用 System.out.println(arrayList); 打印 ArrayList 时,调用的也是 ArrayList 类的 ==toString==方法
一、简要介绍
- 有序且可重复
- 支持索引,且==索引从 0 开始==,可以使用 索引读取指定数据。
二、常用方法
- void add(int index, Object ele):在 index 位置插入 ele 元素
- boolean addAll(int index, Collection eles):从 index 位置开始将 eles 中的所有元素添加进来
- Object get(int index):获取指定 index 位置的元素
- int indexOf(Object obj):返回 obj 在集合中==首次==出现的位置
- int lastIndexOf(Object obj):返回 obj 在当前集合中==末次==出现的位置
- Object remove(==int index==):移除指定 index 位置的元素,并==返回此元素==
- Object set(int index, Object ele):设置指定 index 位置的元素为 ele , 相当于是替换. list.set(1, “玛丽”);
- List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合
1 | ublic class ListMethod { |
三、练习
demo1
1 |
|
demo2
1 | ``` |
五、注意
线程不安全
1 | public boolean add(E e) { |
六、底层分析
1)ArrayList
- 不会被序列化 维护一个elementData
- 扩充
- 0(默认构造器)—>10 —>15 —> 22
- 8(指定)—>14—->21
Arrays.copy(url , int newlength)方法。且会保留原有的数据。
一个利用移位扩容。
1 |
|
2)vector
自定义扩容
1 | int newCapacity = oldCapacity + ((capacityIncrement > 0) ?capacityIncrement : oldCapacity); |
详细
1 |
|