HashTable、Properties、TreeSet及如何选择集合实现类详解

HashTable、Properties、TreeSet详解及如何选择集合实现类

1. HashTable说明

  1. 存放的是键值对,即 k - v
  2. hashTable的键和值都不能为null,否则会抛出NullPointerException
  3. hashTable使用方法基本上和HashMap一致
  4. hashTable是线程安全的(synchronized),hashMap是线程不安全的

2. Properties类说明

1. 基本介绍
  1. Properties类继承自HashTable类并且实现了Map 接口,也是一种键值对的形式来保存数据
  2. 它的只用特点和HashTable类似
  3. Properties还可用于从 xx.properties文件中,加载数据到Properties类对象,并进行读取和修改
  4. 说明:xx.properties文件通常作为配置文件

3. 如何选择集合实现类

  • 选择什么集合实现类,主要取决于业务操作特点
  1. 先判断存储的类型(一组对象【单列】或一组键值对【双列】)

  2. 一组对象【单列】:Collection接口

    • 允许重复:List

      • 增删多:LinkedList(底层维护了一个双向链表)
      • 改查多:ArrayList(底层维护了Object类型的可变数组)
    • 不允许重复: Set

      • 无序:HashSet (底层是HashMap,维护了一个哈希表即数组+链表+红黑树)
      • 排序:TreeSet
      • 插入和取出顺序一致:LinkedHashSet,数组+双向链表
  3. 一组键值对【双列】:Map

    • 键无序:HashMap
    • 键排序:TreeMap
    • 键插入和取出顺序一致:LinkedHashMap
    • 读取文件:Properties

4. TreeSet说明

  1. 当我们使用无参构造器创建TreeSet时,任然是无序的
  2. 希望在添加元素时,按照字符串大小进行排列
  3. 则使用TreeSet提供的一个构造器,可以传入一个比较器(匿名内部类),并指定排序规则
posted @ 2021-05-08 15:43  mx_info  阅读(84)  评论(0)    收藏  举报