一、什么是集合?
1、Math:很难给集合下一个非常精确的定义,通常情况下把具有相同性质的一类事物汇聚成一个整体,可称之为集合。
2、Java:将若干用途,性质相同或相近的“数据”组合而成一个整体,称作集合(又叫容器)。此处的数据指的是对象集合中只能存放对象(实际是对象的引用),不能存放基本数据类型。
3、数学上可以将集合类型归纳为三种
a、set(集)
set集合中的元素不区分顺序,不允许重复
b、list(列表)
List集合中的元素区分顺序且不允许重复
c、map(映射)
映射中保存成对的“键-值”(key-alue)信息,映射中不能包含重复的键,每个键最多只能映射一个值。
Java中定义了三个接口来对应数学上的三种集合类型Set、List、Map
二、为什么要引入集合
1、数组存在两个缺陷
a、数组的长度固定,一旦数组内存已经分配,再想改变数组,效率将会异常的底下
b、数组中数据类型必须一致
三、什么是集合框架
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类:8个实现类(实线表示),对接口的具体实现。
在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码
实现 Collection 接口容器中的元素是一组允许重复的对象。
Set接口继承Collection实现Set 接口的容器中的对象不允许重复,使用自己内部的一个排列机制。
· List 接口继承 Collection,实现List接口的容器中的对象允许重复,以元素安插的次序来放置元素,不会重新排列。
·Map接口是一组成对的键-值对象,即所持有的是key-value pairs。实现Map接口的容器中的对象不能有重复的key。拥有自己的内部排列机制。
· 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。