1、java集合主要接口
1.1、Iterator接口
迭代器接口,该接口主要规范可迭代集合,通过实现该接口,可以迭代输出元素,该接口主要包含以下方法:
- boolean hasNext(); 是否有下一个元素
- E next(); 得到下一个元素
- boolean remove(); 删除当前元素
1.2、Iterable接口
可迭代接口,实现该接口的类具有一个返回迭代器的功能,Collection接口继承自该接口,该接口主要包含以下方法:
- Iterator iterator(); 返回一个迭代器对象,通过迭代器对象可迭代输出元素
1.3、Collection接口
该接口是java集合的根接口,他提供了基本的元素操作方法,包括List,Set,Queue等子接口,主要包括以下方法:
- int size(); 返回集合的大小
- boolean isEmpty(); 判断集合是否空
- boolean contains(Object o); 判断集合是否包含某个元素
- Iterator iterator(); 返回集合的迭代器对象
- boolean add(T t); 像集合中添加一个元素
- boolean remove(Object o); 移除集合中某一个元素
- containsAll(Collection c); 判断是否完全包含另一个集合中所以元素
- addAll(Collection< ? extends E> c); 将另一个集合中所有元素添加至本集合
- boolean removeAll(Collection< ?> c); 将另一集合中所有元素从本集合移除
- void clear(); 清空集合元素
- boolean equals(Object o); equals方法,强制实现类重写
- int hashCode(); hashCode方法,强制实现类重写
- boolean retainAll(Collection< ?> c); 仅保留此collection中那些也包含在指定collection的元素
1.4、List接口
该接口定义的元素是有序的且可重复的。相当于数学里面的数列,有序可重复
- boolean addAll(int index, Collection< ? extends E> c); 将指定集合中所有元素,插入至本集合第index个元素之后
- default void replaceAll(UnaryOperator operator); 替换集合中每一个元素值
- default void sort(Comparator< ? super E> c); 给集合中的元素进行排序
- E get(int index); 获取集合中第index个元素
- E set(int index, E element); 将集合中第index个元素替换成指定元素
- void add(int index, E element); 向集合中第index个位置添加一个元素
- E remove(int index); 移除集合中第index个元素
- int indexOf(Object o); 得到指定元素在集合中的位置(第一次出现)
- int lastIndexOf(Object o); 得到指定元素在集合中的位置(最后一次出现)
- ListIterator listIterator(); 返回ListIterator
- ListIterator listIterator(int index); 返回ListIterator,并设置当前位置
- List subList(int fromIndex, int toIndex); 截取List,从fromIndex到toIndex
1.5、Set接口
该接口定义的集合不允许包含重复的元素,更严格的来说是两个元素的equals方法。且该集合中的元素是无序的。该接口相当于数学中的集合,元素不可重复且无序。
1.6、Queue接口
该接口用以实现队列功能(先进先出),队列中增加、删除、获取都包含两组方法,一组方法抛出异常,一组方法返回false或者null,该接口主要包含以下方法:
- boolean add(E e); 像队列中插入一个元素,队列满时抛出异常
- boolean offer(E e); 像队列中插入一个元素,队列满时返回false
- E remove(); 获得并移除队列顶部元素,如果队列为空抛出异常
- E poll(); 获得并移除队列顶部元素,如果队列为空返回null
- E element(); 获得队列顶部元素,不会删除队列顶部元素,队列为空时抛出异常
- E peek();获得队列顶部元素,不会删除队列顶部元素,队列为空时返回null
2、Collection子类
2.1、AbstractCollection抽象类
该类实现了基本的集合功能,主要包括如下:
- boolean isEmpty(); 判断集合是否空,调用集合的size方法判断
- boolean contains(Object o); 判断集合是否包含某个元素,内部调用迭代器迭代实现
- Object[] toArray(); 将集合元素转换成数组,内部调用迭代器迭代元素,保存至数组中
- T[] toArray(T[] a); 将集合元素转换成数组,内部调用迭代器迭代元素,保存至数组中
- boolean add(E e); 添加元素方法,内部直接抛出异常,如果子类需要使用add方法,需要重写
- boolean remove(Object o); 移除元素,内部使用迭代器实现
- boolean containsAll(Collection< ?> c); 遍历c,内部使用contains(obj)实现
- boolean addAll(Collection< ? extends E> c); 添加集合c中所有元素,内部调用add方法
- boolean removeAll(Collection< ?> c); 移除集合c中所有元素,内部使用迭代器删除
- boolean retainAll(Collection< ?> c); 只保留集合c中元素,内部使用迭代器实现
- void clear(); 清空集合中的元素,内部使用迭代器实现
- String toString(); 该抽象类重写了toString方法,内部使用[元素,元素]格式输出元素,所以我们可以通过此方法打印集合的内容