
我碰到java中有for(×××××:××××)这种语句,请问这里的冒号有什么作用啊?
展开全部
这个是JAVA1.5中的新特性,作用用来遍历集合的。
如:有集合 list
遍历的方式可以有
for(int i =0 ; i<list.size();i++){
//遍历
Object obj = list.get(i);
}
现在有了foreach了可以简化为
for(Object obj : list){
}
这样遍历了,这里的冒号就是指的foreach ,就是说遍历list集合中的每一个Object对象obj
具体的你可以百度一下“JAVA 5新特性”肯定会有很多的介绍
如:有集合 list
遍历的方式可以有
for(int i =0 ; i<list.size();i++){
//遍历
Object obj = list.get(i);
}
现在有了foreach了可以简化为
for(Object obj : list){
}
这样遍历了,这里的冒号就是指的foreach ,就是说遍历list集合中的每一个Object对象obj
具体的你可以百度一下“JAVA 5新特性”肯定会有很多的介绍
展开全部
这是JAVA1.5 增强的for 循环的新特性。。(enhanced for loop)
所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator
遍历容器”的逻辑交给编译器来处理。例如下列代码:
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();
}
所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator
遍历容器”的逻辑交给编译器来处理。例如下列代码:
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的遍历
ArrayList LAS = new ArrayList();
for(A a:LAS){
//在这里能对Las里面每个a的值进行读取,但是不能对其进行修改
}
相当于:
for(int i = 0;i < LAS.size();i++){
A a=(A)LAS.get(i);
}
其中A为LAS中存放数据的类型
ArrayList LAS = new ArrayList();
for(A a:LAS){
//在这里能对Las里面每个a的值进行读取,但是不能对其进行修改
}
相当于:
for(int i = 0;i < LAS.size();i++){
A a=(A)LAS.get(i);
}
其中A为LAS中存放数据的类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般说来是向下兼容的。所以你用jdk6.0肯定是可以的,不信你自己写个例子试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询