黑马程序员技术交流社区

标题: Properties信息打印的三种方式:高级for循环;keySet();entrySet... [打印本页]

作者: huoxy    时间: 2014-11-3 11:40
标题: Properties信息打印的三种方式:高级for循环;keySet();entrySet...
本帖最后由 huoxy 于 2014-11-4 21:25 编辑
  1. import java.util.*;

  2. class SystemDemo2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Properties prop=System.getProperties();
  7.                
  8.                 //因为Properties是Hashtable的子类,也就是Map类的成员
  9.                 //可以通过Map的方式取出该集合中的元素。
  10.                 //该集合中存储的都是字符串信息,没有泛型定义。

  11.                 //1.高级for循环
  12.                 System.out.println("--------------------高级for循环----------------------");
  13.                 for (Object obj : prop.keySet() )
  14.                 {
  15.                         String valueFor=(String)prop.get(obj);

  16.                         System.out.println(obj+"---->"+valueFor);
  17.                 }

  18.                 //2.keySet()
  19.                 System.out.println("--------------------keySet()方法----------------------");
  20.                
  21.                 Set<Object> keySet=prop.keySet();
  22.                 for(Iterator<Object> it=keySet.iterator();it.hasNext();)
  23.                 {
  24.                         String key1=(String)it.next();
  25.                         String value1=(String)prop.get(key1);

  26.                         System.out.println(key1+"---->"+value1);
  27.                 }

  28.                 //3.entrySet()
  29.                 System.out.println("--------------------entrySet()方法----------------------");
  30.                
  31.                 Set<Map.Entry<Object,Object>> entrySet=prop.entrySet();
  32.                 for(Iterator<Map.Entry<Object,Object>> it=entrySet.iterator();it.hasNext();)
  33.                 {
  34.                         Map.Entry<Object,Object> me=it.next();
  35.                         
  36.                         String key2=(String)me.getKey();
  37.                         String value2=(String)me.getValue();

  38.                         System.out.println(key2+"---->"+value2);
  39.                 }
  40.         }
  41. }
复制代码
视频中毕老师说:Properties中没有定义泛型。所以在通过keySet()和entrySet()方式取得相应的集合结果时要定义成Set<Object>和Set<Map.Entry<Object,Object>>类型,最后在取得具体键、值时再通过强制类型转换为String即可,否则会报“不兼容的类型”错误。
各位还有更好的方法吗?求教!

作者: huoxy    时间: 2014-11-3 13:29
自顶一下!
作者: 郑飞    时间: 2014-11-4 06:35
还可以用Properties类自身的功能
  1. public class Test {
  2.         public static void main(String[] args)
  3.         {
  4.                 System.getProperties().list(System.out);
  5.         }     
  6. }
复制代码

作者: 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