【Java基础】集合之——ArrayList类
集合
集合,是一种容器,类似数组,集合大小可变
ArrayList可变原理
- ArrayList维护了一个Object类型的数组elementData
- 当空参构造函数创建ArrayList集合容器时,初始elementData数组容量为0
- 当调用add方法添加元素时则扩容elementData数组容量为10
- 如果元素溢出,则扩容elementData数组容量至1.5倍
- 将原数组数据,拷贝到新数组中
- 将新元素添加到新数组
- 原数组变成垃圾数据由Java的垃圾处理器不定时回收
如果使用的是指定大小的构造器,则初始elementData数组容量为指定大小,如果需要扩容,则直接扩容至1.5倍
ArrayList集合的使用
构造方法
public ArrayList():构造一个空列表。
创建实例
ArrayList list = new ArrayList(); // 这样创建没有规定数据类型,集合中可以存储任意数据类型,[不常用]
要想限制集合数据类型,需要使用泛型:<>
但是泛型中不允许编写基本数据类型,如果想要存储基本数据类型,需要使用基本数据类型对应的包装类(Byte、Short、Integer、Long、Float、Double、Boolean、Character)
ArrayList<String> list1 = new ArrayList<>(); // jdk7及之后可以省略new后<>中的数据类型
ArrayList<String> list2 = new ArrayList<String>(); // jdk7之前必须这样写