标签:iterator hashtable map system properties
System的getProperties()方法返回Properties类型对象,其中Properties类属于Hashtable的子类,属于Map集合的一个子类对象,所以可以通过key和value取值。Properties的key和value实际上都是String类型的。这一点是其和Hashtable不同的地方。我们可以查看Properties.java得到这个信息——
public synchronized Object setProperty(String key, String value) { return put(key, value); }
在取值的时候,有两种方法——
第一种是使用System的getProperties(String key)方法:
此时要定义key为String,而不能向上转型为Object型,因为System的getProperties(String key)方法要求传入的key必须是String类型的。
通过迭代器拿到key(定义为String类型!!!)之后我们就可以使用getProperties()方法得到String型的value。
第二种是Hashtable的get()方法:
get(Object key)方法并不强制要求key要为String,只要是Object类型即可。
下面是代码实现,在实现的时候我们第一种使用了迭代器,第二种没有使用迭代器,直接使用for循环遍历取值,纯属个人爱好,跟上面介绍的两种方法无关——
import java.util.Iterator; import java.util.Properties; public class SystemDemo { public static void main(String[] args) { // TODO Auto-generated method stub Properties prop = System.getProperties(); //Properties属于Hashtable的子类,可以通过key和value取值 System.out.println("取出System的Properties内容的方法一:"); Iterator it = prop.keySet().iterator(); while(it.hasNext()){ String key = (String)it.next(); String value = prop.getProperty(key); //static String getProperty(String key) //getProperty只能通过String的key去获取value,因为System返回的Properties集合的key和value确实都是字符串 System.out.println(key + "-----" + value.toString()); } System.out.println("取出System的Properties内容的方法二:"); for(Object obj : prop.keySet()){ String value = (String)prop.get(obj); //也可以直接用HashSet的get()方法取值,这个方法只要求key是Object型 System.out.println(obj + "-----" + value.toString()); } } }得到的是系统加载时的属性信息,每个人都不一样,我的结果如下——
取出System的Properties内容的方法一: java.runtime.name-----Java(TM) SE Runtime Environment sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64 java.vm.version-----25.45-b02 java.vm.vendor-----Oracle Corporation java.vendor.url-----http://java.oracle.com/ path.separator-----: java.vm.name-----Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg-----sun.io user.country-----US sun.java.launcher-----SUN_STANDARD sun.os.patch.level-----unknown java.vm.specification.name-----Java Virtual Machine Specification user.dir-----/home/lpp/Codes/JavaWorkSpace/Test java.runtime.version-----1.8.0_45-b14 java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed os.arch-----amd64 java.io.tmpdir-----/tmp line.separator----- java.vm.specification.vendor-----Oracle Corporation os.name-----Linux sun.jnu.encoding-----UTF-8 java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib java.specification.name-----Java Platform API Specification java.class.version-----52.0 sun.management.compiler-----HotSpot 64-Bit Tiered Compilers os.version-----4.0.1-1-ARCH user.home-----/home/lpp user.timezone----- java.awt.printerjob-----sun.print.PSPrinterJob file.encoding-----UTF-8 java.specification.version-----1.8 java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin user.name-----lpp java.vm.specification.version-----1.8 sun.java.command-----SystemDemo java.home-----/usr/lib/jvm/java-8-jdk/jre sun.arch.data.model-----64 user.language-----en java.specification.vendor-----Oracle Corporation awt.toolkit-----sun.awt.X11.XToolkit java.vm.info-----mixed mode java.version-----1.8.0_45 java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext sun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classes java.vendor-----Oracle Corporation file.separator-----/ java.vendor.url.bug-----http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding-----UnicodeLittle sun.cpu.endian-----little sun.cpu.isalist----- 取出System的Properties内容的方法二: java.runtime.name-----Java(TM) SE Runtime Environment sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64 java.vm.version-----25.45-b02 java.vm.vendor-----Oracle Corporation java.vendor.url-----http://java.oracle.com/ path.separator-----: java.vm.name-----Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg-----sun.io user.country-----US sun.java.launcher-----SUN_STANDARD sun.os.patch.level-----unknown java.vm.specification.name-----Java Virtual Machine Specification user.dir-----/home/lpp/Codes/JavaWorkSpace/Test java.runtime.version-----1.8.0_45-b14 java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed os.arch-----amd64 java.io.tmpdir-----/tmp line.separator----- java.vm.specification.vendor-----Oracle Corporation os.name-----Linux sun.jnu.encoding-----UTF-8 java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib java.specification.name-----Java Platform API Specification java.class.version-----52.0 sun.management.compiler-----HotSpot 64-Bit Tiered Compilers os.version-----4.0.1-1-ARCH user.home-----/home/lpp user.timezone----- java.awt.printerjob-----sun.print.PSPrinterJob file.encoding-----UTF-8 java.specification.version-----1.8 java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin user.name-----lpp java.vm.specification.version-----1.8 sun.java.command-----SystemDemo java.home-----/usr/lib/jvm/java-8-jdk/jre sun.arch.data.model-----64 user.language-----en java.specification.vendor-----Oracle Corporation awt.toolkit-----sun.awt.X11.XToolkit java.vm.info-----mixed mode java.version-----1.8.0_45 java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext sun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classes java.vendor-----Oracle Corporation file.separator-----/ java.vendor.url.bug-----http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding-----UnicodeLittle sun.cpu.endian-----little sun.cpu.isalist-----
标签:iterator hashtable map system properties
原文地址:http://blog.csdn.net/puppylpg/article/details/45603973