黑马程序员技术交流社区
标题:
Properties信息打印的三种方式:高级for循环;keySet();entrySet...
[打印本页]
作者:
huoxy
时间:
2014-11-3 11:40
标题:
Properties信息打印的三种方式:高级for循环;keySet();entrySet...
本帖最后由 huoxy 于 2014-11-4 21:25 编辑
import java.util.*;
class SystemDemo2
{
public static void main(String[] args)
{
Properties prop=System.getProperties();
//因为Properties是Hashtable的子类,也就是Map类的成员
//可以通过Map的方式取出该集合中的元素。
//该集合中存储的都是字符串信息,没有泛型定义。
//1.高级for循环
System.out.println("--------------------高级for循环----------------------");
for (Object obj : prop.keySet() )
{
String valueFor=(String)prop.get(obj);
System.out.println(obj+"---->"+valueFor);
}
//2.keySet()
System.out.println("--------------------keySet()方法----------------------");
Set<Object> keySet=prop.keySet();
for(Iterator<Object> it=keySet.iterator();it.hasNext();)
{
String key1=(String)it.next();
String value1=(String)prop.get(key1);
System.out.println(key1+"---->"+value1);
}
//3.entrySet()
System.out.println("--------------------entrySet()方法----------------------");
Set<Map.Entry<Object,Object>> entrySet=prop.entrySet();
for(Iterator<Map.Entry<Object,Object>> it=entrySet.iterator();it.hasNext();)
{
Map.Entry<Object,Object> me=it.next();
String key2=(String)me.getKey();
String value2=(String)me.getValue();
System.out.println(key2+"---->"+value2);
}
}
}
复制代码
视频中毕老师说:Properties中没有定义泛型。所以在通过keySet()和entrySet()方式取得相应的集合结果时要定义成Set<Object>和Set<Map.Entry<Object,Object>>类型,最后在取得具体键、值时再通过强制类型转换为String即可,否则会报“不兼容的类型”错误。
各位还有更好的方法吗?求教!
作者:
huoxy
时间:
2014-11-3 13:29
自顶一下!
作者:
郑飞
时间:
2014-11-4 06:35
还可以用Properties类自身的功能
public class Test {
public static void main(String[] args)
{
System.getProperties().list(System.out);
}
}
复制代码
作者:
xukunn
时间:
2014-11-4 08:04
强势的顶:lol
作者:
huoxy
时间:
2014-11-4 15:43
郑飞 发表于 2014-11-4 06:35
还可以用Properties类自身的功能
这么简单!这个是毕老师视频后面讲的还是自学的?
作者:
郑飞
时间:
2014-11-4 16:17
视频里有说的
作者:
huoxy
时间:
2014-11-4 16:22
谢谢啦,我第一遍视频还没看完,继续努力!
作者:
wtjohn
时间:
2014-11-4 16:45
{:3_54:} 不错,顶下,顺便我也复习了一下,哈哈,占便宜了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2