苟有恒,何必三更眠五更起;最无益,莫过一日曝十日寒 
1. Collection集合接口
一般不会直接使用此接口
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean add(E e) | 普通 | 向集合保存数据 | 
| public boolean addAll(Collection<? extend E>c) | 普通 | 追加一组数据 | 
| public void clear() | 普通 | 清空集合,让根节点为空,同时执行GC处理 | 
| public boolean contains(Object o) | 普通 | 查询数据是否存在,需要equals()方法支持 | 
| public boolean remove(Object o) | 普通 | 数据删除,需要equals()方法支持 | 
| public int size() | 普通 | 获取数据长度 | 
| public Object[] toArray() | 普通 | 将集合变为对象数组返回 | 
| public Iterator | 
普通 | 将集合变为Iterator接口 | 
| public boolean isEmpty() | 普通 | 判断集合是否为空 | 
2. List
允许保存重复元素数据,是Collection集合接口的子接口,插入顺序排序
1  | public interface List<E> extends Collection<E> {  | 
| 方法 | 类型 | 说明 | 
|---|---|---|
| public E get(int index) | 普通 | 取得指定索引位置上的数据 | 
| public E set(int index,E element) | 普通 | 修改指定索引位置上的数据 | 
| public ListIterator | 
普通 | 为ListIterator接口实例化 | 
| public static  | 
普通 | 将数据转为List集合 | 
| public default void forEach(Consumer<? super T> action) | 普通 | 使用forEach结合消费型接口输出 | 
ArrayList 接口实现类
实现了List接口,继承了AbstractList抽象类, 数组, 随机访问, 没有同步, 线程不安全,查
1  | public class ArrayList<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,Serializable {  | 
LinkedList 接口实现类
实现了List接口,继承了AbstractSequentialList抽象类,链表结构, 插入删除, 没有同步, 线程不安全
1  | public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>,Deque<E>,Cloneable,Serializable {  | 
Vector 接口实现类
实现了List接口,继承了AbstractList抽象类,数组,synchronized 同步, 线程安全,是早期集合,查询
1  | public class Vector<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,Serializable {  | 
- Stack栈
 
栈是有序的数据结构,采用先进后出FILO存储模式,当栈中没有数据保存时,出栈操作会出现空栈异常(EmptyStackException)
1  | public class Stack<E> extends Vectors<E>{  | 
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean empty() | 常量 | 测试栈是否为空 | 
| public E peek() | 常量 | 查看栈顶,但不删除 | 
| public E pop() | 常量 | 出栈,同时删除 | 
| public E push(E item) | 普通 | 入栈 | 
| public int search(Object o) | 普通 | 在栈中查找 | 
3. Set
不允许保存重复数据,使用hash()算法函数生成一个int类型hashCode散列值,然后和所存储的hashCode进行比较,不能根据索引获取元素(不确定)
1  | public interface Set<E> extends Collections<E> {  | 
HashSet
使用hash表(数组)存储元素,元素无顺序,线程不安全
1  | public class HashSet<E> extends AbstractSet<E> implements Set<E>,Cloneable,Serializable {  | 
LinkedHashSet
链表维护元素的插入次序,哈希表维护元素唯一性
TreeSet
底层实现为二叉树,元素排好序,不允许放入null值
1  | public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>,Cloneable,Serializable {  | 
4. Map
接口 键值对的集合 (双列集合),不是继承Collection接口
| 方法 | 类型 | 说明 | 
|---|---|---|
| Object put(Object key,Object value) | 普通 | 将指定key-value添加到(或修改)当前map对象中 | 
| void putAll(Map m) | 普通 | 将m中的所有key-value对存放到当前map中 | 
| Object remove(Object key) | 普通 | 移除指定key的key-value对,并返回value | 
| void clear() | 普通 | 清空当前map中的所有数据 | 
| Object get(Object key) | 普通 | 数据删除,需要equals()方法支持 | 
| boolean containsKey(Object key) | 普通 | 获取数据长度 | 
| boolean containsValue(Object value) | 普通 | 将集合变为对象数组返回 | 
| int size() | 普通 | 将集合变为Iterator接口 | 
| boolean isEmpty() | 普通 | 判断集合是否为空 | 
Hashtable 接口实现类
同步, 线程安全
1  | public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>,Cloneable,Serializable {  | 
HashMap 接口实现类
没有同步, 线程不安全
1  | public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable {  | 
LinkedHashMap
双向链表和哈希表实现
1  | public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {  | 
WeakHashMap
强引用,GC回收弱引用
TreeMap
红黑树对所有的key进行排序
1  | public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>,Cloneable,Serializable {  | 
- IdentifyHashMap
 
5. Iterator
集合的输出四种方式:Iterator,ListIterator,Enumeration,foreach,Itertor是专门的迭代输出接口
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean hasNext() | 普通 | 判断是否有下一个值 | 
| public E next() | 普通 | 取出当前元素 | 
| public default void remove() | 普通 | 移除当前元素 | 
6. Enumeration
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean hasMoreElements() | 普通 | 判断是否有下一个元素 | 
| public E nextElement() | 普通 | 取出当前元素 | 
7. ListIterator
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean hasPrevious() | 普通 | 判断是否有前一个元素 | 
| public E previous() | 普通 | 取出前一个元素 | 
8. Queue
队列是一种先进先出FIFO的线性数据结构
| 方法 | 类型 | 说明 | 
|---|---|---|
| public boolean add(E e) | 普通 | 向队列尾部添加数据,数据添加成功返回true,如果队列已满,则抛出一个IIIegaIStateEepeplian异常 | 
| public boolean offer(E e) | 普通 | 添加一个元素并返回true,如果队列已满,则返回false | 
| public E remove() | 普通 | 移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException | 
| public E peek() | 普通 | 返回队列头部的元素,如果队列为空,则返回null | 
| public E poll() | 普通 | 移除并返问队列头部的元素,如果队列为空,则返回null | 
9.总结
还有许多的类集框架没有写出来,欢迎大家总结。