java 看不懂程序hasNext()

public double avgCourse(String course, List<Student> ls) {
double sum = 0;
int size = 0;
for (Iterator<Student> it = ls.iterator(); it.hasNext();) {//hasNext返回一个布尔值
Student s = it.next();
if (s.getCourse() == course) {
sum += s.getScore();
size++;
}
}
return sum / size;
}
这程序中Iterator<Student> it = ls.iterator(); it.hasNext();是什么意思 Student s = it.next();什么意思,不懂哪些函数是java自带的 哪些是自己写的

就是迭代了,Iterator<Student> it = ls.iterator();就是循环你那个list《student》 ,it.hasNext();
表示是否还有下一个student对象,返回true就进入 it.next表示获得当前这个student(强转)对象然后判断获得的分数是否和那个相等。。。,返回false就终止了,与for循环原理差不多
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-01
iterator是迭(die)代器,相当于指针,指向list中的数据,通过next方法,返回当前指向位置的数据,并将指针指向下一个数据,hasnext在指针不是处于末尾的时候都是返回true
相似回答