黑马程序员技术交流社区

标题: for (Object e : c) 是什么意思 [打印本页]

作者: 小黑子    时间: 2014-9-16 07:21
标题: for (Object e : c) 是什么意思
本帖最后由 小黑子 于 2014-9-16 15:14 编辑

看到这样一段代码:

void printCollection(Collection<?> c) {

for (Object e : c) {

System.out.println(e);

}

}

表示不明白  for (Object e : c) 是什么意思?



作者: 敏敏好学    时间: 2014-9-16 08:05
后面数组c中的元素一一取出 赋给左边的变量 然后执行循环体
作者: 李春丽    时间: 2014-9-16 09:11
JDK5.0中出现高级For循环,它能对数组集合进行遍历,传统的for循环和增强for循环的比较:

1,String[] str={"张三","李四","王五"};
//传统的数组遍历
for(int i=0;i<str.length;i++){
System.out.println(str);
}
//使用增强for循环的数组遍历
for(String person:str){
System.out.println(person);
2,List<String> persons=new ArrayList<String>();
persons.add("张三");
persons.add("李四");
persons.add("王五");

//传统的Iterator遍历集合
for(Iterator<String> i=persons.iterator();i.hasNext();){
String person=i.next();
System.out.println(person);
}
//使用增强For循环遍历集合
for(String person:persons){
System.out.println(person);
}
以上代码中可以看到,使用增强for循环使得代码变得短小精炼。
增强for循环有局限性:不能在增强for循环中访问位置。
作者: xiayoutianxia    时间: 2014-9-16 09:18
高级for循环
作者: 小漠    时间: 2014-9-16 09:27
正好最近在看for,把我知道的说一下

你要是要先打印Collection集合中的元素,这个for (Object e : c)是jdk1.5推出的一个高级for用法。
就是遍历集合中的每一个元素,由于你for (Object e : c)里的泛型是Object,void printCollection(Collection<?> c) 这里的问号可以改成Object。。。

作者: MeryStyle    时间: 2014-9-16 13:37
楼上  藤椅  解释的很详尽!
作者: xpaibeyond    时间: 2014-9-16 13:42
       增强for遍历集合。   增强for的优点:代码精练、高效       缺点:只适合取数据。
作者: sean    时间: 2014-9-16 14:32
这个是高级for循环的一种体现形式。
作者: xplcc    时间: 2014-9-16 14:37
for循环加强,for(A a:b) 意思是:b中包含多个A 迭代循环出来的A用变量a表示
作者: 家进    时间: 2014-9-16 14:50
高级for循环,java5.0新特性,楼主自己去了解下吧
作者: 小黑子    时间: 2014-9-16 15:14
李春丽 发表于 2014-9-16 09:11
JDK5.0中出现高级For循环,它能对数组和集合进行遍历,传统的for循环和增强for循环的比较:

1,String[] st ...

明白了,谢谢:)
作者: 王海生    时间: 2014-9-18 02:04
高级for循环,将c的数据赋予给e,直到c集合中的数据全部完成赋值,循环体结束。
作者: 爽朗的菜籽    时间: 2014-9-18 07:49
刚刚看到

这是JDK1.5的新特性 增强 for 循环
格式  
      for(类型 变量 : Collection(或者是数组也可以))
       {
       }
这是遍历,将被遍历的集合或者数组 c 的元素逐一的赋值给 变量 e,并且直到 遍历元素结束,循环停止,你可以打印 e看到结果
作者: 静水流华    时间: 2014-9-18 08:15
这个是for循环的增强
  1. public class  ForDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] args0={1,2,3,4,5,6,7};
  6.                 for (int args1 : args0)
  7.                 {
  8.                         System.out.println(args1);
  9.                 }
  10.                 System.out.println("Hello World!");
  11.         }
  12. }
复制代码

作者: noiary    时间: 2014-9-18 08:43
本帖最后由 noiary 于 2014-9-18 08:45 编辑

for each循环  百度更专业
作者: 黑马-胡明    时间: 2014-9-18 11:08
这个是jdk5.0的新特性,增强for循环。for(Object e:c)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2