一.集合的概念:
是一种容器,用来装对象的容器,不能装基本数据类型。
数组也是一种容器,可以用来装基本数据类型,也可以用来装对象。
本质上,集合需要用对应的数据结构来实现。
二.集合的分类:
(1)Collection系列:存储一组对象,每个对象之间都是独立的。
①Java.lang.Collection接口:是Collection系列的根接口,它没有提供任何的直接 的实现,而是提供更具体的子接口(例如:List,set,Queueu等)的实现。有一些 是可重复的,有一些是不可重复的,有一些是有序的,有一些是无序的。
Java.lang.Collection接口的API:
序号 | 归类 | 方法签名 | 方法描述 |
1 | 添加 | add(E e) | 添加一个元素 |
2 | 添加 | addAll(Collection c) | 添加多个元素,把c元素的所有元素都添加到当前集合中,this = this U c; |
3 | 删除 | clear() | 清空集合 |
4 | 删除 | remove(Object o) | 删除一个元素,根据元素的equals()来判断是否要被删除的元素,如果该元素没有重写equals(),那么就等价于==,如果重写了,那么就按照equals的规则来比较,一般是比较内容 |
5 | 删除 | removeAll(Collection c) | 删除多个元素,把当前集合的和c共同的元素删除,即this = this - this ∩ c; |
6 | 删除 | retainAll(Collection c) | 删除多个元素,把当前集合中的元素和c共同的元素保留,即this = this ∩ c; |
7 | 查 | int size() | 获取集合中元素的个数 |
8 | 查 | boolean contains(Object o) | 是否包含某个元素。根据元素的equals()来判断是否要被删除的元素,如果该元素没有重写equals(),那么就等价于==,如果重写了,那么就按照equals的规则来比较,一般是比较内容 |
9 | 查 | boolean containsAll(Collection c) | 是否包含多个元素。判断当前集合中是否包含c集合中的所有元素,即c是当前集合的子集 |
10 | 查 | boolean isEmpty() | 判断集合是否为空 |
11 | 遍历 | Object[] toArray() | 将集合中的元素用数组返回 |
12 | 遍历 | Iterator iterator() | 返回一个迭代器,专门用于遍历集合 |
②集合的遍历:
(1)使用数组
(2)使用foreach
语法格式:
for (元素的类型 元素名 : 容器名){
}
容器名:数组名,或者是集合名,或者说实现了Iterable接口的其他容器
(3)使用迭代器
Java.util.Iterator类型,接口类型。
①boolean hasNext():判断当前游标后面是否还有下一个元素
②E next():取出下一个元素
③remove():删除刚刚迭代/取过的元素
(2)Map系列:存储一组映射关系(key,value),即存储对值。