在开发过程中,选择什么集合实现类,主要取决于业务特性,然后根据集合实现类的特性进行选择,以下是一些参考分析:
- 首先判断存储的数据类型(一组对象【单列】/ 一组键值对【双列】)
- 一组对象【单列】:Collection
- 允许重复:List
- 增删多: LinkedList [底层维护了一个双向链表]
- 改查多: ArrayList [底层维护了一个数组]
- 不允许重复: Set
- 无序: HashSet [底层是HashMap]
- 有序: TreeSet
- 插入和取出顺序一致: LinkedHashSet [底层维护了数组+双向链表]
- 允许重复:List
- 一组键值对【双列】:Map
- 键无序: HaspMap [jdk1.7底层维护了数组+链表 / jdk1.8往后底层维护了数据+链表+红黑树]
- 键排序: TreeMap
- 键插入和取出顺序一致: LinkedHashMap
- 读取文件: Properties