集合类
Collection
LinkedList、ArrayList、HashSet是非线程安全的,
Vector是线程安全的;
- ArrayXxx:底层数据结构是数组,连续存放,所以查询快,增删慢。(ArrayList)
- LinkedXxx:底层数据结构是链表,非连续存放,所以查询慢,增删快,适用头尾插入和指定位置插入。(LinkedList,LinkedHashMap,LinkedHashSet)
- HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals() 。(HashMap,HashSet)
- TreeXxx:底层数据结构是二叉树。两种排序方式:自然排序和比较器排序。(TreeMap,TreeSet)
Map
HashMap是非线程安全的,无序的,其K,V均可以为NULL,。
HashTable是线程安全的,所在要牺牲速度,其K,V均不能为NULL,在更新时需要取得同步锁,当前使用ConcurrentHashMap替代。
String
StringBuilder是非线程安全的,但速度较快
StringBuffer是线程安全的,但要牺牲速度