Java 1.8 多线程之“Collection”
1.传统集合框架
- ArrayList :可以储存多个NULL值,数组实现,非线程安全。查询效率高,删除元素需要移动数组内元素效率低。
- LinkedList :可以储存多个NULL值,链表实现,非线程安全。链表查询效率低,插入删除效率高。
- Vector:可以储存多个NULL值,数组实现,线程安全。
- Stack:可以储存多个NULL值,数组实现,线程安全。一个栈的实现支持push、pop。
- HashSet:所有元素唯一,允许储存一个NULL值,非线程安全,非有序存储。HashMap实现
- TreeSet:所有元素唯一,允许储存一个NULL值,非线程安全,有序存储。
- LinkedHashSet:所有元素唯一,允许储存一个NULL值,非线程安全,非有序存储。LinkedHashMap实现。
- HashMap:key和value都可以储存NULL值,key只可以储存一个NULL,value可以储存多个NULL,非线程安全,哈希表实现(数组+链表,伟大的发明)
- Hashtable:key和value都不允许是NULL,线程安全,哈希表实现
- LinkedHashMap:key和value都可以储存NULL值,key只可以储存一个NULL,value可以储存多个NULL,非线程安全,哈希表 + 双向链表实现。可以按插入顺序取出元素。
- TreeMap:key不可以为NULLvalue可以为NULL可以tree实现,可以实现排序,非线程安全。
2.concurrent包提供集合