Java.集合.基本初识
集合.基本初识
常用的集合分为两接口,Collection 与 Map
一、Collection:
Collection又分为List与Set两类接口
1. List:
-
- ArrayList:线性结构数组,数据可重复,线程不安全。 优点:查询元素速度快。缺点:增删元素速度慢。
-
- LinkedList:链式结构双向链表,数据可重复,线程不安全。优点:增删元素速度快,查询元素速度慢。
-
- Vector:线性结构数组,数据可重复,线程安全。优点:线程安全。缺点:效率低。(不常用)
2. Set:
-
- HashSet:底层数组,数据不可重复,线程不安全,优点查询速度快。
-
- LinkedHashSet:底层是链表+哈希表算法,数据不重复,有序,线程不安全。链表保证添加顺序,哈希表保证不重复。
-
- TreeSet:底层红黑树,数据不重复,有序,线程不安全。
对于单向链表与双向链表的说明:
二、Map:
Map是结构(key-value),其中key不可重复,value可以重复。
-
- HashMap:底层数组 + 链表 + 红黑树。无序,线程不安全。
-
- Hashtable:线程安全效率较低。(不常用)
-
- TreeMap:红黑树算法,key按照自然顺序排序。
-
- LinkedHashMap:底层链表加哈希算法。key保证添加顺序。
-
- properties:Hashtable的子类,要求key与value都是String。