Java对象可以在内部持有若干其它Java对象,并对外提供访问接口,我们把这种java对象称为集合。Java的数字可以看作是一种集合。
既然Java提供了数组这种数据类型可以充当集合,那么为什么还需要其它集合类。
是因为数组有很多限制:
- 数组初始化后大小不可变
- 数组只能按照索引顺序存取
集合类Collection是除了Map外所有其它集合类的根接口。
- 集合(Collection):一个独立元素的序列,这些元素都服从一条或多条规则。List必须以插入的顺序保存元素,Set不能包含重复元素,Queue按照排队规则来确定对象产生的顺序。
- 映射(Map):一组成对的“键入值”对象,允许使用建来查找值。ArrayList使用数字来查找对象,它是将数字和对象关联在一起。map允许我们使用一个对象来查找另一个对象,它被称为关联数组,或者字典,因为可以使用一个键对象来查找值对象。
Java的java.util包主要提供了一下三种类型的集合:
-
List一种有序列表的集合,例如,按索引排列的Student的List;
-
Set:一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set;
-
Map:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。
-
Java集合设计实现了接口和实现类的分离。
-
有序表的接口是List,具体的实现类有ArrayList,linkedList等,二是支持泛型,我们- 可以限制在一个集合里只放入同一种数据类型的元素
Listlist =new ArrayList<>();//只能放入String类型
Java访问集合总是通过统一方式——迭代器(lterator)来实现,明显的好处是无需知道集合内部元素是按什么方式存储的。



