集合框架分析
Collection:List列表、Set集、Map:Hashtable,HashMap,TreeMap。
Collections:(单列集合)
1.List集合:元素有序、有重复、有索引。
- ArraysList:线程不安全;查询快、增删慢。(底层数据结构是数组结构)
- Vector:线程安全,但速度慢,已被ArrayList替代。(底层数据结构是数组结构)
- LinkedList:线程不安全;增删快、查询慢。(底层数据结构是列表结构)
2.Set集合:无重复、无索引。
- HashSet:线程不安全,增删快。HashSet是基于HashMap实现的,底层都是使用的HashMap中方法,是通过数组和链表来实现对数据的存储(1.8加入了红黑树,当链表过长的时候就使用红黑树)。
- TreeSet:线程不安全。TreeSet是基于TreeMap实现的,但是它是有序的。它的实现用到了红黑树这种数据结构,所以,当需要向TreeSet中存储对象时,这个对象必须实现Comparable接口,并复写里面的comparaTo方法,TreeSet就是根据这个来排序的。或者在新建TreeSet对象的时候,传入一个特定的比较器,这样它就知道根据什么进行排序了。
Map:(双列集合)
1.HashMap:
- 线程安全,速度快。底层是哈希表数据结构。是同步的。不允许null作为键,允许null作为值。
2.TreeMap:
- 可以用来对Map集合中的键进行排序。
3.Hashtable:
- 线程安全,速度快。底层是哈希表数据结构。是同步的。不允许null作为键,允许null作为值。
- Properties:用于配置文件的定义和操作,使用频率非常高,同时键和值都是字符串。