社区
Java SE
帖子详情
Java中一道怪异的for循环语法问题
young_suse
2008-01-26 11:51:43
今天看到一段代码,功能是打印所有时区:
for(String s : TimeZone.getAvailableIDs()) {
System.out.println(s);
}
我感到奇怪的是这个语法,怎么中间是冒号,跟传统的for( ; ; )中间两个逗号不一样.
请大家为我解释一下这种语法现象,有什么用途.
...全文
741
13
打赏
收藏
Java中一道怪异的for循环语法问题
今天看到一段代码,功能是打印所有时区: for(String s : TimeZone.getAvailableIDs()) { System.out.println(s); } 我感到奇怪的是这个语法,怎么中间是冒号,跟传统的for( ; ; )中间两个逗号不一样. 请大家为我解释一下这种语法现象,有什么用途.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woami66
2009-08-10
打赏
举报
回复
我赞成5楼的观点,这种做法,不是很可取!
KK3K2005
2008-05-18
打赏
举报
回复
FOR( : )
是为了 配合 集合的枚举接口
只要实现了 枚举接口的对象就可以这样访问
这样可以 避免 只能使用索引来访问集合
shi_guang_2008
2008-05-18
打赏
举报
回复
好用不好用,仅仅是个习惯问题,呵呵
flysky
2008-05-18
打赏
举报
回复
JDK5 之后才有的新特性
snowflychen
2008-05-18
打赏
举报
回复
jdk1.5增强的for循环语句啊,据说不是很好用,不知道大家意见如何
young_suse
2008-05-18
打赏
举报
回复
举了这个例子,确实好理解多了!谢谢!
persephonec
2008-03-10
打赏
举报
回复
我觉得这样很好用,因为这不只可以是字串,更可以是一个自定义像user(用户)这样的object
如
User是自定义的object
users是List<User>变量
for (User user: users) {
System.out.println(user.name);
System.out.println(user.brithday);
}
当然你可也以写成
for (int i=0; i<users.size(); i++) {
User user = users.get(i);
System.out.println(user.name);
System.out.println(user.brithday);
}
两者那个好用,很明显吧^^
xiaoben008
2008-01-27
打赏
举报
回复
jdk新特性
Dragon_sxw
2008-01-27
打赏
举报
回复
这是 JDK5 之后才有的新特性 跟原来的for循环没有什么不一样
可以上网搜一下 增强的for 循环,看看就明白啦
冒号前String s 跟你在 for( ; ; ) { String s } 一样
冒号后 是一个数组,表示要从该数组中循环出你要的数据
newflypig
2008-01-27
打赏
举报
回复
按照3楼的解释,这确实有点方便阿,但是SUN这么作有什么必要呢,难道非要显得java越来越怪异深奥才能让人赞叹吗,算法效率上如果没有优化的话(估计这种简单的循环也不可能存在优化),那我认为这确实没什么必要,反而加大了一部分初学者的代码阅读难度,一家之见……
young_suse
2008-01-27
打赏
举报
回复
谢谢大家的指点了
silverspoonuk
2008-01-27
打赏
举报
回复
for (String s: a)
{
// do something with s;
}
Equivalent to:
for (int i=0; i<a.size();i++)
{
s=a.get(i);
//so something with s;
}
ly8261861
2008-01-27
打赏
举报
回复
for(String s : TimeZone.getAvailableIDs())
这个是java中foreach的写法
String 表示进行循环迭代的变量类型
s 表示变量名
:相当于C#中foreach的in 操作符
TimeZone.getAvailableIDs() 应该是一个String数组
这个写法的意思是将TimeZone.getAvailableIDs()数组中的项每次拿给一个赋给变量s
PS:需要注意的是s只是一个变量名,所以不一定要写s可以是任何符合变量命名的东西。比如str i j k....
相对于
java
,C++
中
的那些神奇
语法
相对于
java
,c++
中
的那些神奇
语法
,对于
java
开发人员,真的不可思义!
别只会 for
循环
了!用这篇带你
Java
Stream API效率暴涨200%,代码美哭同事(附实用案例+万能模板)
本文深度解析
Java
Stream API,通过真实案例对比展示其相比传统for
循环
200%的效率提升。涵盖基础操作、高级技巧、性能优化、踩坑指南等核心内容,提供实用代码模板和面试要点,助力
Java
开发者快速掌握函数式编程精髓...
Java
_01 快速入门
Java
简介&
Java
基础
语法
第二章:
Java
基础
语法
2.1
Java
的注释范例2-1:单行注释。范例2-2:多行注释。范例2-3:使用文档注释。范例2-4:利用
中
文定义标识符。2.3 数据类型划分范例2-5:定义int型变量。范例2-6:观察变量与常量的区别。范例2...
python
语法
详解大全_Python
语法
大全
易学Python有极其简单的
语法
。免费、开源Python是FLOSS(自由/开放源码软件)之一。高层语言使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。可移植性Python已被移植到很多平台,这些平台包括...
java
中
goto用法源代码,
java
中
goto语句解析12
hi,今天无意
中
看到有个兄弟在
java
程序
中
多次用到了goto语句,感觉很是
怪异
,copy来编译下发现有很多错误!为此,我付出了一下午时间去研究这个块被人遗忘了的可怕的"魔鬼".“可怕”的goto语句是c和c++的“遗物”,它...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章