使用迭代器'Student st = (Student)itr.next();',这行代码意味着什么



我正在练习ArrayList程序。我想问一下这句话的含义。

Student st = (Student)itr.next();

public static void main(String[] args) {
Student s1 = new Student(1,"owelcute",28);
Student s2 = new Student(2,"lucas",2);
Student s3 = new Student(3,"jor",30);
ArrayList <Student> studentList = new ArrayList<Student>();
/*
declaring class Student in ArrayList
*/
studentList.add(s1);
studentList.add(s2);
studentList.add(s3);
Iterator itr = studentList.iterator();
while(itr.hasNext()){
Student st = (Student)itr.next();
System.out.println(st.rollno + " "+ st.name + " "+ st.age);
}
}
Student st 

创建一个类型为 Student 的变量 st。

=(Student)itr.next();

将 st 设置为 ITR(迭代器(指向的下一个元素的值。(学生(是一个确保

itr.next();

属于"学生"类型。

这在iterator.next文档中进行了解释:它获取迭代中的下一项。

如果强制转换(Student)使您感到困惑,那么部分原因是代码错误地使用了原始Iterator类型。

代码应该是,更准确地说:

Iterator<Student> iterator = studentList.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
...
}

或者,甚至更好:

for (Student student: studentList) {
...
}

最新更新