Java基础——Properties
作者:互联网
一、Properties作为Map集合来使用
//Properties作为集合来用
Properties pt=new Properties();
//添加元素
pt.put("001","张三");
pt.put("002","李四");
pt.put("003","王五");
pt.put("003","王六");
//遍历集合
Set<Object> keySet = pt.keySet();
for (Object key:keySet){
Object value = pt.get(key);
System.out.println(key+","+value);
}
}
}
同样的,Properties同样不会存储键重复的元素,如果有重复的会将值覆盖掉
二、Properties作为集合的特有方法
方法名 | 说明 |
---|---|
Object setProperty(String key,String value) | 设置集合的键和值,都是String类型,底层调用Hashtable方法put |
String getProperty(String key) | 使用此列表中指定的键搜索属性 |
Set<String>stringPropertyNames() | 从该列表中返回一个不可修改的键集,其中键及其对应的值是字符串 |
public class Demo02 {
public static void main(String[] args) {
//创建集合对象
Properties pt=new Properties();
//Object setProperty(String key,String value)设置集合的键和值,都是String类型,底层调用Hashtable方法put
pt.setProperty("001","张三");
//public synchronized Object setProperty(String key, String value) {
// return put(key, value);
// }
// public synchronized V put(K key, V value) {
// // Make sure the value is not null
// if (value == null) {
// throw new NullPointerException();
// }
//
// // Makes sure the key is not already in the hashtable.
// Entry<?,?> tab[] = table;
// int hash = key.hashCode();
// int index = (hash & 0x7FFFFFFF) % tab.length;
// @SuppressWarnings("unchecked")
// Entry<K,V> entry = (Entry<K,V>)tab[index];
// for(; entry != null ; entry = entry.next) {
// if ((entry.hash == hash) && entry.key.equals(key)) {
// V old = entry.value;
// entry.value = value;
// return old;
// }
// }
pt.setProperty("002","李四");
pt.setProperty("003","王五");
//String getProperty(String key)使用此列表中指定的键搜索属性
System.out.println(pt.getProperty("001"));
System.out.println(pt.getProperty("0011"));//返回null
//Set<String>stringPropertyNames()从该列表中返回一个不可修改的键集,其中键及其对应的值是字符串
Set<String> propertyNames = pt.stringPropertyNames();
for (String key:propertyNames){
String value = pt.getProperty(key);
System.out.println(key+","+value);
}
}
}
其中第一种方法的设计方式要特别说一下,setProperty(String key,String value)设置集合的键和值,都是String类型,底层调用Hashtable方法put,我们通过跟踪至底层源码可以看到setProperty显示调用的put方法;而setProperties方法传参是String类型的,put方法是泛型,也就是put方法可以接受、返回任意类型的值,但setProperties方法传的参数是String类型,那么通过这种设计方式就限制了put方法返回的值类型只能是String类型。
标签:Java,String,pt,基础,value,key,put,Properties 来源: https://www.cnblogs.com/CYan521/p/16136560.html