就是方便遍历集合的那个····
解决方案 »
- 写Java项目时候 包的组织结构如何定义合理
- 关于上传,显示图片问题
- 能在java里使用xml http技术吗
- hibernate 与mysql 5.5.31执行问题
- 有朋友在项目中使用过JDK6自带的JWS吗?
- 出人命了,产品保护问题!!!!!!!!!!!!!!!!!!!!!!!!!200分!!!!
- 100分相送问关于Tomcat下如何改变文件的缺省路径?
- 免费为您写JAVA或C++程序
- 请教怎么处理entity bean中findAll()返回的结果集??!!
- java大手子帮忙看看,我这是什么问题
- java如何监控线程是否在运行??求大虾指点。在线,急救。
- 有多个管理员同时审查视频文件,怎样处理同步问题
String[] strs = ****;
for(String str:strs){
System.out.println(str);
}
//旧
for(int i=0;i<s.length;i++){
....
}
//新
for(String s:strs){
....
}新的比起旧的更加方便,省去了增加变量i的烦恼,也减少了代码出错的可能性(多个循环中i可能会被重复用)。
谢谢
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
可以用增强的for 循环改写为:
void cancelAll(Collection c) {
for (Object o : c)
((TimerTask)o).close();
}
编译器判断对象c 是一个Collection 子对象(即是容器)之后,就会允许使用增强的for 循环
形式,并自动取到c 的迭代器,自动遍历c 中的每个元素。
可以看到,上面的代码中仍然有一个强制类型转换(((TimerTask)o).close();)。实际上,这
项特性应该普遍地与泛型结合,以获得最大的利益。结合泛型之后,上述代码变成:
void cancelAll(Collection c) {
for (TimerTask task : c)
task.cancel();
}
严格来说,实现了java.lang.Iterable的类都可以for-each.
譬如您可以自己写一个class:
class MyIt<T> implements java.lang.Iterable<T>{
public Iterator<T> iterator() {
return ...;
}
}
然后在程序里面for-each:
MyIt<String> it=new MyIt<String>();
for(String n:it){
...
}
不过这个不敢说新了··· 这个就是写的时候简单些
这个东西,也是借鉴c#的foreach。为了简化for循环。 至于使用哪个就看个人爱好了。如果你想记录元素的下标以及一些其他操作,那么就需要使用for循环,如果只是为了获取元素,或者遍历元素,简化for循环比较简洁。
int A={1,2,3,4,5};
for(int i:A)
System.out.println(i);
输出结果是:
1
2
3
4
5