此代码行使用Iterator'Student st =(Student)itr.next();'

时间:2019-10-18 01:12:32

标签: java

我正在练习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);
        }

    }

2 个答案:

答案 0 :(得分:1)

Student st 

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

=(Student)itr.next();

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

itr.next();

属于学生类型。

答案 1 :(得分:0)

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

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

代码应该更正确:

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

或者,甚至更好:

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