Java教程

Java基础——Properties

本文主要是介绍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基础——Properties的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!