请Java高手帮我解释一下这段代码,谢谢了

private ArrayList<Stduent>students=new ArrayList<Student>();
.
.
Student s=new Stduent("Chris Kerry","30008990");
students.add(s);
students.add(0,new Student(fscanner));
for(int i;i<students.size();i++)
System.out.println(stduents.get(i).toString());

for(Student st : students)
System.out.println(st.toString());

if(stduents.contains(current){
file.println(current);
students.remove(current);
}

这不是一段完整的代码,是上课时的一个例子,重点是说明ArrayList的,但我有点看不懂,请高手帮我解释一下吧,特别是st:students这一段,谢谢了

for(Student st : students)
System.out.println(st.toString());
这相当于一个foreach语句~是jdk1.5以上的版本才有的
相当于
for(int i=0;i<students.size();i++){
Student st = (Student)students.get(i);
System.out.println(st.toString());
}
或者用迭代其也可以实现:
Iterator it = students.iterator();
while(it.hasNext()){
Student st = (Student)it.next();
System.out.println(st);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-16
ArrayList 是一个数组类型,创建了一个student的对象数组,ArrayList还可以这样用ArrayList<String> str=new ArrayList<string>();
只要创建的时候在后面加上对象类型,就可以创建相应的对象数组,
student是一个类,是一个叫做学生的类,从这个类中派生出一个对象实例,将这些实例放到students这个学生数组里面,下面的
for(Student st: students)是递归将students里的学生实例取出然后输出。
第2个回答  2010-03-16
这段代码就是:首先创建一个只能保存学生类型的泛型集合private ArrayList<Stduent>students=new ArrayList<Student>();,再产生两个学生对象Student s=new Stduent("Chris Kerry","30008990"),new Student(fscanner));;然后把这个学生对象保存到这个泛型集合中students.add(s);
students.add(0,new Student(fscanner));然后再用for遍历出学生信息。还有你的代码不全,只知道一部分作用。
第3个回答  2010-03-16
private ArrayList<Stduent>students=new ArrayList<Student>();
属于泛型的用法

for(Student st : students)
System.out.println(st.toString());
属于foreach的用法,用于容器和数组。
表示将students里的内容循环,并由Student类型的参数 st接受,最后打印出来。

以上都属于jdk1.5以后的新特性。

除此之外还有自动装/拆箱、可变长度的参数、静态导入和枚举。

详细去这看下吧。
http://pwosboy.javaeye.com/blog/118756

另外: jayeye 是个不错的网站,对学习很有帮助的。

希望大家一起进步,在学习的道路上。本回答被提问者采纳