Properties类作为Map集合使用
Properties类在java.tuil包下。该类的父类是Hashtable<K,V>,且父类实现了Map<K,V>接口,则该父类其实就是Map集合 由于该类的父类是Map集合,所以该类其实就是Map集合体系的一员,即是Map的集合类 该类是具体类。Properties类表示一组持久的属性。Properties可以保存到流中或从流中加载。属性列表中的每个键及其对应的值都是一个字符串
总结: 1、是一个Map体系的集合类 2、Properties可以保存到流中或从流中加载
Properties类作为Map集合使用的练习
xxxxxxxxxx
package 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集合特有方法的练习
xxxxxxxxxx
package 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,王五
}
}
}