1. 基本介绍
-
Properties
类继承自Hashtable
类并且实现了 Map 接口,也是使用一种键值对的形式来保存数据 - 使用特点和
Hashtable
类似 -
Properties
还可以用于从xxx.properties
文件中,加载数据到Properties
类并进行读取和修改 -
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);
- 通过 k 获取对应值
System.out.println(properties.get("xdr"));//100
- 删除:
properties.remove("mick");
System.out.println("properties=" + properties);
- 修改:
properties.put("jack", "tom");
System.out.println("properties=" + properties);
2. 开发中如何选择集合实现类
- 在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择,分析如下:
- 先判断存储的类型(一组对象【单列】或一组键值对【双列】)
- 一组对象【单列】:
Collection
接口
- 允许重复:
List
- 增删多:
LinkedList
【底层维护了一个双向链表】 - 改查多:
ArrayList
【底层维护了Object
类型的可变数组】
- 不允许重复:
Set
- 无序:
HashSet
【底层是HashMap
,维护了一个哈希表即 (数组+链表+红黑树) 】 - 排序:
TreeSet
- 插入和取出顺序一致:
LinkedHashSet
,维护数组+双向链表
- 一组键值对【双列】:
Map
- 键无序:
HashMap
【底层是:哈希表jdk7: 数组+链表,jdk8: 数组+链表+红黑树 】 - 键排序:
TreeMap
- 键插入和取出顺序一致:
LinkedHashMap
- 读取文件
Properties