【Java集合】之ArrayList

ArrayList

一、概述

 默认初始化容量 10

 最大容量2147483647-8=2147483639

扩容1.5倍

测试

public class TestArrayList {
    public static void main(String[] args) {
        List list = new ArrayList();
        A a = new A();
        list.add(new A());
        list.add(new B());
        list.add(new C());
        list.add(a);
        list.add(a);
        list.add(a);
        list.add(a);
        list.add(a);
        list.add(a);
        list.add(a);   //第10个
        list.add(a);   //第11个元素
​
        System.out.println(list);
    }
}

二、初始化

使用IDEA调试

List list = new ArrayList(); 初始化this.elementData={}

elementData声明的注释:elementData是用于存放ArrayList元素的,ArrayList的容量就是这个数组的长度,如何空的而且elementData=DEFAULTCAPACITY_EMPTY_ELEMENTDATA的ArrayList,在添加第一个元素时会扩展大小到默认容量(10)

 

  

三、Add

list.add(new A()); 添加第一条

进入ensureCapacityInternal(size+1)方法看看

接着到grow()方法

运行之后

elementData由空变成了长度为10的数组

当添加第11个元素时,size=10,所需存储的最小容量minCapacity=11,需要扩容

扩容成10+10/2=15

add总结

  1. ArrayList初始化为{},空的,当第一次添加元素时,会设置为默认容量(10)

  2. 当添加元素个数超出容量大小时,会扩容成原来的1.5倍

四、Remove

  • list.remove(index)

  • list.remove(Object o)

 remove总结

1.删除元素需要移动该元素后面的元素

2.remove(Object o)只删除第一个匹配的元素

posted @ 2019-06-10 09:51  tingtingzhou  阅读(188)  评论(0编辑  收藏  举报