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理解呢?
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理解呢?
for(T a : A)
顾名思义 对于每一个在B中的元素a 依序遍历之
System.out.println(o);
}
这是遍历方法的一种,O代表每个循环的对象,P代表要遍历的对象
一般都用Object o:strArr,可以在不用知道对象是什么时,遍历。
;为分隔符:第一个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);
}
具有很大的限制
比如
List<String> list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for (String name : list) {
list.remove(name);
}
会抛异常,他完全无法对集合的个数进行操作
java的容器都实现了的 如果自己写的容器别忘了:)