### 简介 在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。很显然,Java的数组可以看作是一种集合。 ```java String[] ss = new String[10]; //可持有10个String对象 ss[0] = "Hello"; //可放入String对象 String first = ss[0]; //可获取某个位置的String对象 ``` 既然Java提供了数组这种数据类型,可以充当集合,那么,我们为什么还需要其他集合类?这是因为数组有如下限制: - 数组初始化后大小不可变; - 数组只能按索引顺序存取。 我们需要各种不同类型的集合类来处理不同的数据。 - 可变大小的顺序链表 - 保证无重复元素的集合 - ... ### Collection Java标准库自带的`java.util`包提供了集合类:`Collection`,它是除`Map`外所有其他集合类的根接口。Java的`java.util`包主要提供了以下三种类型的集合: - `List`:一种有序列表的集合,例如,按索引排列的`Student`的`List`; - `Set`:一种保证没有重复元素的集合,例如,所有无重复名称的`Student`的`Set`; - `Map`:一种通过键值(key-value)查找的映射表集合,例如,根据`Student`的`name`查找对应`Student`的`Map`。