集合框架
集合的概念
集合可以简单的理解为一个长度可以改变,可以保存任意数据类型的动态数组。
集合本身也是数据结构的基本概念之一,我们这里说的集合是 Java 语言对这种数据结构的具体实现。在 Java 中,集合不是由一个类来完成的,而是由一组接口和类构成了一个框架体系。大致可分为 3 层,最上层是一组接口,继而是接口的实现类,接下来是对集合进行各种操作的工具类,集合框架中常用接口的具体描述如表:
接口 | 描述 |
---|---|
Collection | 集合框架最基本的接口,一个 Collection 存储一组无序,不唯一的对象,一般不直接使用该接口 |
List | Collection 的子接口,存储一组有序,不唯一的对象,常用的接口之一 |
Set | Collection 的子接口,存储一组无序,唯一的对象 |
Map | 独立于 Collection 的另外一个接口,存储一组键值对象,提供键到值的映射 |
Iterator | 输出集合元素的接口,一般适用于无序集合,从前到后单向输出 |
ListIterator | Iterator 的子接口,可以双向输出集合中的元素 |
Enumeration | 传统的输出接口,以被 Iterator 所取代 |
SortedSet | Set 的子接口,可对集合中的元素进行排序 |
SortedMap | Map 的子接口,可对集合中的键值元素进行排序 |
Queue | 队列接口,此接口的子类可实现队列操作 |
Map.Entry | Map 的内部接口,描述 Map 中的一个键值对元素 |
Collection 接口
Collection 是集合框架中最基础的父接口,可以存储一组无序,不唯一的对象。一般不直接使用该接口,也不能被实例化,只是用来提供规范定义。
Collection 接口常用的方法描述如表:
方法 | 描述 |
---|---|
int size() | 获取集合长度 |
boolean isEmpty() | 判断集合是否为空 |
boolean contains(Object 0) | 判断集合中是否存在某个对象 |
Iterator iterator() | 实例化 Iterator 接口,遍历集合 |
Object[] toArray() | 将集合转换为一个 Object 类型的对象数组 |
T[] toArray(T[] a) | 将集合转换为一个指定数据类型的对象数组 |
boolean add(E e) | 向集合中添加元素 |
boolean remove(Object o) | 从集合中移除元素 |
boolean containsAll(Collection<?> c) | 判断集合中是否存在某个集合的所有元素 |
boolean addAll(Collection<? extends E> c) | 向集合中添加某个集合的所有元素 |
boolean removeAll(Collection<?> c) | 从集合中移除某个集合的所有元素 |
default boolean removeIf(Predicate<? super E> filter) | 从集合中移除 满足给定条件的集合的所有元素 |
boolean retainAll(Collection<?> c) | 对集合进行操作,只保留包含在目标集合中的元素 |
void clear() | 清除集合中的所有元素 |
boolean equals(Object o) | 比较两个集合是否相等 |
int hashCode() | 获取集合的散列值 |
default Spliterator spliterator() | 将集合转换为一个指定数据类型的并行迭代器 |
default Stream stream() | 将集合转换为一个流 |
default Stream parallelStream() | 将集合转换为一个可并行的流 |
Collection 的子接口
Collection 作为集合的基本接口,在实际开发中一般不会直接使用,而是使用其子类接口进行开发,Collection 主要的子接口如下:
- List:存放有序,不唯一的元素
- Set:存放无序,唯一的元素
- Queue:队列接口