java集合类,HashMap,ArrayList

集合类

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是线程安全的,但要牺牲速度

猜你喜欢

转载自www.cnblogs.com/liehen2046/p/10612361.html