Collection接口时最基本的集合接口,可以存储一组不唯一,无序的对象。List接口继承自Collection接口,可以存储一组不唯一、有序的对象。Set接口也继承自Collection接口,可以存储一组唯一、无序的对象。

ArrayList类
ArrayList集合中可以添加任何类型的数据,并且添加的数据类型装换成Object类型。(这个地方就为泛型的出现打下了基础)
public class ArrayListTest {
public static void main(String[] args) {
ArrayList testList = new ArrayList();
testList.add(1);
testList.add("String");
Student stu = new Student();
testList.add(stu);
}
}
ArrayList testList = new ArrayList();是调用的无参构造方法,还有一个带参数的构造方法:
ArrayList(int initialCapacity)这个构造了一个具有初始容量的空列表。
ArrayList类常用方法
该类提供的常用方法可以按照增删查改分为以下这些:
增:1、在列表的末尾添加元素
2、在指定的索引位置添加元素
删:1、从列表中删除元素(删除首次出现的这个元素)
2、从列表中删除指定位置的元素(删除了该位置的元素之后,后面的元素依次前移)
3、移除列表中所有的元素
查:1、判断该列表是否为空
2、判断列表中是否存在指定元素
3、返回元素在集合中出现的索引位置
4、返回指定索引位置处的元素
改:1、将index索引位置的元素替换为其他元素
其他:返回列表中元素的个数
ArrayList的遍历
遍历有三种方式:
普通for循环,增强型的for循环,Iterator方法。
ArrayList的优缺点
ArrayList集合可以使用索引来直接获取元素,所以其优点是遍历元素和随机访问元素的效率比较高。但是ArrayList集合采用了和数组相同的存储方式,在内存中分配了连续的空间,因此在添加和删除非尾部元素时会导致后面所有元素的移动,这就造成在插入、删除等操作频繁的应用场景下使用ArrayList会导致性能底下。所以数据操作频繁时,最好使用LinkeList存储数据。