Java集合
集合概念
- 可以动态保存任意多个对象,使用比较方便!
- 提供了一系列方便的操作对象的方法:add、remove、set、get等
- 使用集合添加,删除新元素的示意代码-简洁
- 集合主要是两组(单列集合,双列集合)
- Collection接口有两个重要的子接口 List Set,他们的实现子类都是单列集合
- Map接口的实现子类是双列集合,存放的K-V
Collection接口特点
- collection实现子类可以存放多个元素,每个元素可以是Object
- 有些Collection的实现类,可以存放重复的元素,有些不可以
- 有些Collection的实现类,有些是有序的(List),有些不是有序(Set)
- Collection接口没有直接的实现子类,是通过它的子接口Set和 List实现的
接口不能实例化,只有实现接口(重写)的类可以实例化
Collection接口遍历方式1-迭代器
- Iterator对象称为迭代器,主要用于遍历Collection集合中的元素。
- 所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了lterator接口的对象,即可以返回一个迭代器。
- Iterator的结构.
- Iterator仅用于遍历集合,Iterator本身并不存放对象。
Collection接口遍历方式2-增强for循环
可以在集合或者数组使用,底层仍然是迭代器,简化版的迭代器
for(元素类型 元素名:集合名/数组名){
访问元素
}
for(Object object:col){
}
List接口
List 接口是 Collection 接口的子接口List.java
- List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
- List集合中的每个元素都有其对应的顺序索引,即支持索引
- List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素
常用有:ArrayList 、LinkedList、 Vector
Vector和ArrayList比较
Set接口
1)无序(添加和取出的顺序不一致),没有索引
2)不允许重复元素,所以最多包含一个null
同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。
- 可以使用迭代器
- 增强for
- 不能使用索引的方式来获取不能用普通for循环