文章目录

1. 基本介绍

  1. ​Properties​​​类继承自​​Hashtable​​类并且实现了 Map 接口,也是使用一种键值对的形式来保存数据
  2. 使用特点和​​Hashtable​​类似
  3. ​Properties​​​ 还可以用于从​​xxx.properties​​​文件中,加载数据到​​Properties​​类并进行读取和修改
  4. ​xxx.properties​​ 文件通常作为配置文件来使用

2. 基本使用

  • 案例:
//1. Properties 继承  Hashtable
//2. 可以通过 k-v 存放数据,key 和 value 不能为 null
//增加
Properties properties = new Properties();
//properties.put(null, "abc");//抛出 空指针异常
//properties.put("abc", null); //抛出 空指针异常
properties.put("xdr", 100);//k-v
properties.put("jack", 200);
properties.put("mick", 300);
properties.put("mick", 400);//如果有相同的key , value被替换

System.out.println("properties=" + properties);

Properties类基本使用_数组

  • 通过 k 获取对应值
System.out.println(properties.get("xdr"));//100
  • 删除:
properties.remove("mick");
System.out.println("properties=" + properties);

Properties类基本使用_数据结构_02

  • 修改:
properties.put("jack", "tom");
System.out.println("properties=" + properties);

Properties类基本使用_数组_03

2. 开发中如何选择集合实现类

  • 在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择,分析如下:
  1. 先判断存储的类型(一组对象【单列】或一组键值对【双列】)
  2. 一组对象【单列】:​​Collection​​ 接口
  • 允许重复:​​List​
  1. 增删多:​​LinkedList​​ 【底层维护了一个双向链表】
  2. 改查多:​​ArrayList​​​ 【底层维护了​​Object​​类型的可变数组】
  • 不允许重复:​​Set​
  1. 无序:​​HashSet​​​ 【底层是​​HashMap​​,维护了一个哈希表即 (数组+链表+红黑树) 】
  2. 排序:​​TreeSet​
  3. 插入和取出顺序一致:​​LinkedHashSet​​ ,维护数组+双向链表
  1. 一组键值对【双列】:​​Map​
  • 键无序:​​HashMap​​ 【底层是:哈希表jdk7: 数组+链表,jdk8: 数组+链表+红黑树 】
  • 键排序:​​TreeMap​
  • 键插入和取出顺序一致:​​LinkedHashMap​
  • 读取文件​​Properties​