import java.io.*;
class  FilterJavaFile
{
public static void main(String[] args) 
{
File f = new File("d:\\");
String[] strArr = f.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
if(name.endsWith(".java"))
return true;
else
return false;
}
});
/*for(int x=0; x<strArr.length; x++)
{
System.out.println(strArr[x]);
}*/
for(String str : strArr)
{
System.out.println(str);
}
}
}
应该如何对for理解呢?

解决方案 »

  1.   

    这是1.5新增的for each模式
    for(T a : A)
    顾名思义 对于每一个在B中的元素a 依序遍历之
      

  2.   

    for(Object o:p){
      System.out.println(o);
    }
    这是遍历方法的一种,O代表每个循环的对象,P代表要遍历的对象
    一般都用Object o:strArr,可以在不用知道对象是什么时,遍历。
      

  3.   

    首先这种for应该不用我多说了吧您应该是了解的了!
    ;为分隔符:第一个int x=0它是条件的初始值.x <strArr.length它是条件,即当循环的条件不满足这个表达式的时候for 循环退出.x++它是改变循环的条件.每循环一次x就加1
    for(int x=0; x <strArr.length; x++) 

    System.out.println(strArr[x]); 
    }
    而下面的这个是foreach就是对于没一个strArr中的元素(它中的元素为String类型)都执行下面的语句!
    这种for的优点是可以不必考虑循环退出的条件,而可以更多 的考虑循环内部的结构!但是,当需要对于没一次循环都要求控制的话还是要用到上面的!不知道你能不能明白!多用用自然就会了解了.现在只要记住就可以了!
    for(String str : strArr) 

    System.out.println(str); 

      

  4.   

    到底是.net学了java的foreach还是java学了.net?呵呵~
      

  5.   

    for (:)
    具有很大的限制
    比如
    List<String> list = new ArrayList();

    list.add("1");
    list.add("2");
    list.add("3");
    list.add("4");

    for (String name : list) {
    list.remove(name);
    }
    会抛异常,他完全无法对集合的个数进行操作
      

  6.   

    用foreach语句的容器,必须实现Iterable接口。
    java的容器都实现了的 如果自己写的容器别忘了:)