集合
所有的集合都是Collection这个接口的实现子类,Collection又是Iterable的子接口
说明所有的集合都可以被【迭代】
Collection
函数定义
boolean add(E e)
boolean addAll(Collection<? extends E> c)
void clear()
boolean contains(Object o)
boolean containsAll(Collection<?> c)
boolean equals(Object o)
boolean isEmpty()
Iterator<E> iterator()
boolean remove(Object o)
boolean removeAll(Collection<?> c)
int size()
Object[] toArray()
子接口
List 支持角标操作
函数定义
void add(int index, E element)
boolean addAll(int index, Collection<? extends E> c)
E get(int index)
int indexOf(Object o)
int lastIndexOf(Object o)
ListIterator<E> listIterator() 这个迭代器可以在迭代的过程中进行增删
E remove(int index)
E set(int index, E element)
List<E> subList(int fromIndex, int toIndex)
实现子类(有序不是排序 元素的进入顺序和出来顺序可以一致的)
ArrayList 允许null值 允许重复值 有序 线程不安全 动态数组
LinkedList 允许null值 允许重复值 有序 线程不安全 双向循环链表
LinkedList也是Deque和Queue实现子类
Vector 允许null值 允许重复值 有序 线程安全 动态数组
Vector基本和ArrayList一致的 只不过是线程安全的
Stack是Vector子类 特点同Vector
函数定义
boolean empty()
E peek()
E pop()
E push(E item)
Queue 表示队列
函数定义
E element()
boolean offer(E e)
E peek()
E poll()
E remove()
实现子类
LinkedList
ArrayDeque 禁止null值 允许重复值 有序 线程不安全 双向循环队列(数组)
ArrayDeque也是Deque的实现子类
PriorityQueue 禁止null值 允许重复值 有序 线程安全 最小堆(数组)
子接口
Deque 双端队列
函数定义
void addFirst(E e)
void addLast(E e)
E getFirst()
E getLast()
boolean offerFirst(E e)
boolean offerLast(E e)
E peekFirst()
E peekLast()
E pollFirst()
E pollLast()
E removeFirst()
E removeLast()
Set 一个不包含重复元素的 collection 不支持角标运算
实现子类
HashSet 允许null值 禁止重复值 无序 线程不安全 哈希表+链表(元素过多 红黑树)
实现子类
LinkedHashSet 允许null值 禁止重复值 有序 线程不安全 哈希表+双向链表
TreeSet 禁止null值 禁止重复值 自然排序 线程不安全 红黑树(特殊的AVL树)
Map 区别于Collection体系
函数定义
void clear()
boolean containsKey(Object key)
boolean containsValue(Object value)
Set<Map.Entry<K,V>> entrySet()
boolean equals(Object o)
V get(Object key)
boolean isEmpty()
Set<K> keySet()
V put(K key, V value)
V remove(Object key)
Collection<V> values()
int size()
实现子类
HashMap 允许null值 键禁止重复 无序 线程不安全 哈希表+链表(元素过多 红黑树)
HashSet其实就是HashMap的特殊情况
实现子类
LinkedHashMap 允许null值 键禁止重复 有序 线程不安全 哈希表+双向链表
LinkedHashSet其实就是LinkedHashMap的特殊情况
Hashtable 禁止null值 键禁止重复 无序 线程安全 哈希表+链表
实现子类
Properties 禁止null值 键禁止重复 有序 安全 哈希表+链表
放到IO去说 主要用于操作文件数据
TreeMap 禁止null值 键禁止重复 自然排序 线程不安全 红黑树
TreeSet其实就是TreeMap的特殊情况
ConcurrentHashMap 基本和HashMap一致 但是是线程安全的