Java集合:List、Set、Map
- 集合
Java 集合可分为 Collection 和 Map 两种体系。
- List接口
List是可重复的集合。
ArrayList:动态数组,线程不安全,默认容量10,每次按照1.5倍进行扩容。
LinkedList:双向链表,线程不安全,默认容量10,每次按照1.5倍进行扩容。
Vector:动态数组,线程安全,默认容量10,每次按照2倍进行扩容。
Stack:动态数组,后进先出,线程安全,默认容量10,每次按照2倍进行扩容。
- Set接口
Set是不可重复的集合。
HashSet:hash表,无序,可以放一个null,线程不安全。
LinkedHashSet:hash表+双向链表,有序,可以放一个null,线程不安全。
TreeSet:hash表+红黑树,有序,线程不安全;默认情况下,元素不允许为null值,元素必须是相同类型。
- Map接口
Map是具有映射关系“key-value对”的集合。Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
HashMap:散列表,键唯一,无序,key可为null,线程不安全;
LinkedHashMap:HashMap+双向链表,键唯一,有序,key可为null,线程不安全。
TreeMap:红黑树,键唯一,有序,key不能为null,线程不安全;
HashTable:散列表,键唯一,无序,key和value不能为null,线程安全;