集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。
一、Collection 接口框架图
下图是我们Collection接口下常用到的一些子接口和实现类图
Collection 接口定义了许多该接口待实现的方法,下面这些就是我们比较常用的:
int size() 计算容器长度
boolean isEmpty() 是否为空
boolean add(E e) 添加一个对象
boolean addAll(Collection<? extends E> c) 添加另一个集合的所有对象
boolean remove(Object o) 移除一个对象
boolean removeAll(Collection<?> c) 移除指定集合中所有对象
void clear() 删除集合中所有元素
boolean contains(Object o) 是否包含某个对象
boolean containsAll(Collection<?> c) 是否包含另一个集合的所有对象
Object[] toArray() 把集合转换成数组
Iterator<E> iterator() 上层接口 iterable 的方法,用于生成迭代对象,遍历对象
boolean retainAll(Collection<?> c) 是否与另一个集合有交集(调用集合改变了就返回true,没变就返回false)
二、List 子接口
List 集合的特点是元素有序、可重复,它包含了 ArrayList、Vendor 和 LinkedList 这三个实现类。三者比较如下:
三、Set 子接口
Set 集合最大的特点是不允许重复元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四个实现类,对比如下(EnumSet一般用的少,这里就没做比较):
四、Queue 子接口
Queue 用的不多,它常用于模拟队列这种数据结构,实现 FIFO 等数据结构。通常,队列不允许随机访问队列中的元素。