一. Collection集合
1.1. 集合概述
相信在听说Collection集合之前,我们肯定都听过并且用过ArrayList这个集合,那么集合到底是什么呢?
- 集合:集合是java中提供的一种容器,可以用来存储多个数据。
集合和数组既然都是容器,它们有啥区别呢?
-
数组的长度是固定的。集合的长度是可变的。
-
数组中存储的是同一类型的元素,可以存储基本数据类型值也可以存储对象。但是集合存储的都是对象,而且对象的类型可以不一致。在开发中一般当对象多的时候,可以使用集合进行存储。
int[] arr = new int[10]; // 可以存储基本数据类型
Student[] arr = new Student[3]; // 可以存储对象
ArrayList list = new ArrayList<>(); // 只能存储对象
1.2. 集合框架
JAVASE为我们提供可以满足各种需求的API,但是在使用这些API之前,需要先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。
集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map,这里我们主要探讨Collection集合,Map集合请移步Map集合详解。
-
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是
java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet。
从上面的描述可以看出JDK中提供了丰富的集合类库,为了方便理解,接下来我们通过一张图来描述整个集合类的继承体系。其中,橙色框里填写的都是接口类型,而蓝色框里填写的都是具体的实现类。
集合本身就是一个工具,它存放在java.util包中。在Collection接口定义着单列集合框架中最最共性的内容。