1. 程式人生 > >集合框架比較

集合框架比較

value 分享 code rop key 安全 http alt 集合框架

集合框架可以分為Collection和Map

Collection

  • Set:元素不重復(底層是Map)
    • HashSet
      • 集合中元素可以為null,但只有一個元素為null
      • 基於HashMap實現的,底層是Hash表,不能保證元素排列順序
      • 元素對象比較是否重復:先調用hashcode方法,再調用equals方法  
    • TreeSet 
      • 基於TreeMap實現的,底層是紅黑樹,不允許元素是null
      • 支持排序:自然排序——元素實現Comparable接口調用compareTo方法比較大小,定制排序——自定義比較器類實現Comparator接口調用compare方法比較元素大小 
  • List:元素有順序(索引順序)
    • ArrayList
      • 底層是數組,查詢快(索引),增刪慢
      • 線程不安全,效率較Vector高
    • Vector
      • 底層是數組,查詢快(索引),增刪慢
      • 線程安全(同步影響性能),效率較ArrayList低  
    • LinkedList
      • 底層是一組連接的記錄,是鏈表,查詢慢(需要遍歷),增刪快(修改前後節點即可)
      • 線程不安全

Map(類比set)

  • HashMap
    • key和value可以為null,不安全 
  • TreeMap
  • Hashtable
    • key和value不能為null,安全 
  • Properties  

---------------------------------------------------------------------------------------------------------------------

線程不同步的集合如何轉換成線程同步的集合:

  • 方法一:Collections中的靜態方法

技術分享圖片

  • 方法二:java.util.concurrent包下提供的同步集合容器

技術分享圖片

集合框架比較