A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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即可,否则会报“不兼容的类型”错误。
各位还有更好的方法吗?求教!

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

7 个回复

倒序浏览
自顶一下!
回复 使用道具 举报
还可以用Properties类自身的功能
  1. public class Test {
  2.         public static void main(String[] args)
  3.         {
  4.                 System.getProperties().list(System.out);
  5.         }     
  6. }
复制代码
回复 使用道具 举报
强势的顶:lol
回复 使用道具 举报
郑飞 发表于 2014-11-4 06:35
还可以用Properties类自身的功能

这么简单!这个是毕老师视频后面讲的还是自学的?
回复 使用道具 举报
视频里有说的
回复 使用道具 举报
huoxy 中级黑马 2014-11-4 16:22:37
7#
谢谢啦,我第一遍视频还没看完,继续努力!
回复 使用道具 举报
wtjohn 中级黑马 2014-11-4 16:45:48
8#
{:3_54:}  不错,顶下,顺便我也复习了一下,哈哈,占便宜了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马