黑马程序员技术交流社区
标题:
毕老师视频 IO流中获取系统属性信息的问题
[打印本页]
作者:
yujiangjiao
时间:
2014-3-25 11:27
标题:
毕老师视频 IO流中获取系统属性信息的问题
import java.util.*;
class SystemDemo
{
public static void main(String[] args)
{
Properties prop=System.getProperties();
//Properties 是HashTable的子类,也就是Map集合的子类对象,可用Map集合方法取出集合中的元素
[color=Red]for (Object obj:prop.keySet())[/color]//不明白这个写法是什么意思
{
String value=(String)prop.get(obj);//获取值,并强转成String型
System.out.println(obj+"::"+value);//打印键和值
}
}
}
复制代码
昨天在毕老师视频中看到这段代码,我知道for循环是用来打印出集合中的键和值,但是for(Object obj:prop.keySet())这个写法以前没有见过,请问是什么意思呢?
作者:
zhxu188
时间:
2014-3-25 11:48
java中分为普通for循环和高级for循环,其实这就是高级for循环的写法,高级for循环使得代码变得短小而精炼,一般在集合遍历的时候使用高级for循环 for(Object obj:prop.keySet())意思是
for(int i=0; i<prop.keySet().size(); i++)
{
Object obj = args.get(i);
}
作者:
李东梁
时间:
2014-3-25 11:52
1. 这是增强型for循环
2. 新的for循环。
格式:for(元素类型 变量名:Collection集合or数组)
{
执行语句;
}
3. 传统for和foreach的区别?
foreach循环必须有被遍历的目标,要么是Collection,要么是数组。
建议遍历数组是,用传统for循环,因为可以对数组的角标进行操作。
作者:
霍振鹏
时间:
2014-3-25 12:07
本帖最后由 霍振鹏 于 2014-3-25 12:10 编辑
prop.keySet()的意思是吧prop中的键值对中的键取出来,存入一个Set集合,而Set集合时一个实现了Iterable接口的,所以凡是Set 接口的子类,都可以用迭代器进行迭代,
For(Object obj:prop.keySet())就是用obj去迭代prop.keySet()中的每个元素,下面是 java语言规范中的
C:\Users\hupzhenpeng\Desktop\5.png
这意思就是说,冒号后面的表达式要么是实现了Iterable接口的要么就是个数组,才可以这么用。
5.png
(28.04 KB, 下载次数: 21)
下载附件
2014-3-25 12:10 上传
作者:
霍振鹏
时间:
2014-3-25 12:09
图片上传不上去 这是一张从java语言规范中的截图,,你看看
5.png
(28.04 KB, 下载次数: 20)
下载附件
2014-3-25 12:09 上传
作者:
yanzhendong
时间:
2014-3-25 12:22
这是java中for的foreach语法,用来遍历数组用的,具体格式:for(类型名 类型变量:数组名)等价于for(int i=0;i<数组长度;i++){
类型名 类型变量=数组名[i];
}
作者:
月影释
时间:
2014-3-25 14:41
那个不是foreach for的增强版么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2