Properties类作为Map集合使用
Properties类在java.tuil包下。该类的父类是Hashtable<K,V>,且父类实现了Map<K,V>接口,则该父类其实就是Map集合 由于该类的父类是Map集合,所以该类其实就是Map集合体系的一员,即是Map的集合类 该类是具体类。Properties类表示一组持久的属性。Properties可以保存到流中或从流中加载。属性列表中的每个键及其对应的值都是一个字符串
总结: 1、是一个Map体系的集合类 2、Properties可以保存到流中或从流中加载
Properties类作为Map集合使用的练习
xxxxxxxxxxpackage ch20;
import java.util.Properties;import java.util.Set;
public class a_13_1测试 {
public static void main(String[] args) {
//创建集合对象 //Properties<String,String> prop = new Properties<String,String>(); //上面那行会报错,原因:Properties类虽然是Map集合,但是是没有泛型的。正确写法如下 Properties prop = new Properties();
//存储元素 prop.put("stud001", "张三"); prop.put("stud002", "李四"); prop.put("stud003", "王五");
Set<Object> keySet = prop.keySet();//keySet方法得到所有键的集合。因为没有指定类型,所以默认是Object类型 //使用增强for来遍历集合、 for (Object key : keySet) { Object value = prop.get(key);//根据键得到每一个值 System.out.println(key + "," + value); }
}}
Properties类作为Map集合的特有方法
| 方法名 | 说明 |
|---|---|
| Object setProperty(String key,String value) | 设置集合的键和值,都是String类型,底层调用Hashtable的put方法 |
| String getProperty(String key) | 使用此属性列表中指定的键搜索属性 |
| Set | 从该属性列表中返回一个不可修改的键集,即键的集合,其中键及其对应的值是字符串 |
Properties类作为Map集合特有方法的练习
xxxxxxxxxxpackage ch20;
import java.util.Properties;import java.util.Set;
public class a_14_1测试 {
public static void main(String[] args) {
//创建集合对象 Properties prop = new Properties();
//添加元素 Object setProperty(String key,String value) 设置集合的键和值,都是String类型,底层调用Hashtable的put方法 prop.setProperty("std001", "张三");//选中setProperty,按Ctrl+B查看源码,看是不是底层调用Hashtable的put方法 prop.setProperty("std002", "李四"); prop.setProperty("std003", "王五"); System.out.println(prop);//输出{std001=张三, std002=李四, std003=王五} System.out.println("-----------------------------");
//String getProperty(String key) 使用此属性列表中指定的键搜索属性 System.out.println(prop.getProperty("std001")); //根据键,去搜索对应的值 System.out.println(prop.getProperty("std999")); //没有搜索到就返回null System.out.println("-----------------------------");
//Set<String> stringPropertyNames() 从该属性列表中返回一个不可修改的键集,即键的集合,其中键及其对应的值是字符串 Set<String> names = prop.stringPropertyNames();//右边得到的是键的集合,赋值给names //增强for遍历这个键的集合 for (String key : names) { //System.out.println(key);//输出std001 std002 std003 //即只输出键的集合
//思考:结合上面那个getProperty方法,这里我们直接就可以输出键和值的集合呀。把上面那行注释掉,效果会更直观 String value = prop.getProperty(key); System.out.println(key + "," + value); //输出std001,张三 std002,李四 std003,王五
}
}}