集合框架比較
阿新 • • 發佈:2018-03-20
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方法比較元素大小
- HashSet
- List:元素有順序(索引順序)
- ArrayList
- 底層是數組,查詢快(索引),增刪慢
- 線程不安全,效率較Vector高
- Vector
- 底層是數組,查詢快(索引),增刪慢
- 線程安全(同步影響性能),效率較ArrayList低
- LinkedList
- 底層是一組連接的記錄,是鏈表,查詢慢(需要遍歷),增刪快(修改前後節點即可)
- 線程不安全
- ArrayList
Map(類比set)
- HashMap
- key和value可以為null,不安全
- TreeMap
- Hashtable
- key和value不能為null,安全
- Properties
---------------------------------------------------------------------------------------------------------------------
線程不同步的集合如何轉換成線程同步的集合:
- 方法一:Collections中的靜態方法
- 方法二:java.util.concurrent包下提供的同步集合容器
集合框架比較