首先是单例集合
Collection接口
具有的抽象方法:
| boolean add(Object element) | 增加元素到容器中 |
| boolean remove(Object element) | 从容器中移除元素 |
| boolean contains(Object element) | 判断容器中是否包含该元素 |
| int size() | 容器中元素的数量 |
| boolean isEmpty() | 判断容器是否为空 |
| void clear() | 清空容器 |
| Iterator | 获取迭代器 |
| boolean containsAll(Collection c) | 本容器是否包含c容器所有元素 |
| boolean addAll(Collection c) | 将容器c所有元素增加到本容器 |
| boolean removeAll(Collection c) | 移除相同元素 |
| boolean retainAll(Collection c) | 移除不相同的元素 |
| Object[] toArray() | 转化为Object数组 |
| removeIf | 删除所有满足条件的方法 |
List接口
首先它继承了Collection接口,然后他的特点是有序、可重复。
常用抽象方法
| void add (int index, Object element) | 在指定位置插入元素,元素后移 |
| E set (int index,Object element) | 修改指定位置元素 |
| E get (int index) | 放回指定位置的元素 |
| E remove (int index) | 删除指定位置元素元素前移 |
| int indexOf (Object o) | 返回首次出现o的序号 |
| int lastIndexOf (Object o) | 返回最后出现o的序号 |
ArrayList容器类
底层使用数组实现存储,实现了List接口。
注意:使用toArray得到的Object数组不能直接强转需要单个单个转化。也可采用
T[] toArray(T[] a)方法;
Vector容器类
也是继承了List接口只不过加入了线程安全。
Stack容器类
Vector的一个子类,实现了栈的特点。
| boolean empty() | 判断栈空 |
| E peek() | 返回顶部对象,但没有出栈 |
| E pop() | 返回顶部对象,并弹出 |
| E push(E item) | 将对象压入栈 |
| int search(Object o) | 返回位置 |
linkedList容器类
底层使用双向链表
| void addFirst(E e) | 将元素插入开头 |
| void addLast(E e) | 将元素插入结尾 |
| getFirst() | 返回第一个元素 |
| getLast() | 返回最后一个元素 |
| removeFirst() | 删除第一个元素 |
| removeLast() | 删除最后一个元素 |
Set接口
继承了Collection接口,没有新增加方法 。特点:无序、不可重复; 没有索引
HshSet容器类
底层采用HashMap实现。允许有null元素。存储时对哈希值进行运算决定元素存储位置。
TreeSet容器类
底层采用TreeMap实现,有序。
两种比较规则,一个是实现 Comparable 接口中的 compareTo 方法,另一个是创建一个比较器,然后比较器去实现Comparator 接口中的 compare 方法。
双例集合
Map接口存放的事key和value,其中key可以重复value不可重复。
常用方法
| V put (K key,V value) | 添加一对key和value |
| void putAll(Map m) | 复制m中的映射 |
| V remove (Object key) | 删除key对应的valude |
| V get(Object key) | 返回key'对应的valude |
| boolean containsKey(Object key) | 判断key是否存在 |
| boolean containsValue(Object value) | 判断value是否存在 |
| Set keySet() | 将Map集合中的key',都存放到Set集合中 |
| Set | 返回一个Map.Entry类型的Set集合,存放了map的映射 |
| void clear() | 清空 |
HashMap容器类
实现了Map接口,基于哈希算法实现存储。底层采用数组+链表
TreeMap容器类
与HashMap不同的是对key进行了排序,底层基于红黑树,也是可以通过元素自身,和外部比较器定义排序规则。
Iterator迭代器
单列集合中的容器类可以使用迭代器,通过
boolean hasNext();判断当前游标是否有元素
Object next();获取当前游标位置,并移动到下一个位置
void remove()删除当前游标指向的元素,就是删除最近一次next()返回的元素。
使用时,通过iterator();方法获取迭代器,在通过上述方法,以及循环来迭代容器。
Collections工具类
方法都为静态方法
| void sort(list) | 对list类型进行升序排序 |
| void shuffle(list) | 对list类型进行随机排序 |
| void reverse(List) | 对list类型进行颠倒 |
| void fill(List, Object) | 重写list容器 |
| int binarySearch(List, Object) | 折半查找指定对象 |



