黑马程序员技术交流社区

标题: 求高手给我讲解一下高级for循环 [打印本页]

作者: 李杰    时间: 2012-8-31 21:11
标题: 求高手给我讲解一下高级for循环
for(file f : list)
list 是集合,这样也可以?
作者: 尤洋    时间: 2012-8-31 21:24

作者: 周兴华    时间: 2012-8-31 21:26
本帖最后由 周兴华 于 2012-8-31 21:43 编辑

你这里应该先有个目录对象dir,然后通过dir.list方法返回文件列表给List对象list。
那么for(file f : list)就是遍历dir目录里面的文件和目录。
高级for循环for(file f : list)执行的效果和下面的代码一样,
Iterator it = list.iterator();
while(it.hasNext())
{
//对it.next()的操作
}


另外高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

作者: 吴通    时间: 2012-8-31 21:36
增强for循环格式:(数据类型 变量名:被遍历的集合(Collection)或者数组)
for(String s :al)
{
       System.out.println(s);
}
对集合进行遍历只能获取集合元素
迭代器除了遍历,还可以进行remove集合中元素的动作
如果是用listIterator,还可以在便利过程中对集合进行增删改查。

传统for循环与高级for循环的区别:
高级for循环有一个局限性:必须有被遍历的目标。
在遍历数组时,还是使用传统for循环,因为传统for循环有角标。
举例:
class ForDemo
{
public static void main(String[] args)
{
  ArrayList<String> al=new ArrayList<String>();
  al.add("abc1");
  al.add("abc2");
  al.add("abc3");
  for(String s:al)
  {
   sop(s);
  }
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}



作者: 孙含庆    时间: 2012-8-31 22:04
高级 For 循环: 用于循环取出集合或数组中的数据。

for (被遍历的数据类型  你定义的变量名字 : 要被遍历的集合名字)

高级 For 遍历时只能循环取出数据,而不能在取出的时候对数据进行 增删 操作,没有迭代器 Iterator 的功能多,但是语句简单。
作者: 武庆东    时间: 2012-8-31 23:06
格式:
  for(元素类型type 元素变量x : 遍历对象obj)
  {
  引用了x的java语句;
  }
  实例:
  public class Test {
  public static void main(String[] args)
  {
  int[] a = {1,2,3};
  for(int i : a)
  System.out.print(i + " ");
  }
  }
作者: 黑马-李勇    时间: 2012-9-1 13:31
本帖最后由 黑马-李勇 于 2012-9-1 13:32 编辑

for(type 变量名:集合变量名){...}  //不是所有的集合都可以的,其中集合必须实现iterator
例:
public static int add(int x,int...args)
{
        int sum=x;
        for(int arg:args)
        {
                sum+=arg;
        }
        return sum;
}

未命名1.JPG (124.18 KB, 下载次数: 46)

未命名1.JPG





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