ArrayList<Student> al = new ArrayList<Student>();
Iterator itr = al.iterator();
while (itr.hasNext())
{
Student st = (Student) itr.next();
System.out.println(st.rollno+" "+st.name+""+st.age);
}
假設學生類有三個數據成員rollno,名稱和年齡。 所以,我的問題是爲什麼我們在聲明中沮喪學生st =(Student)itr.next(); 但是,如果我們將一個ArrayList的字符串作爲數據成員的類型,那麼不需要再次使用迭代器對其進行向下轉發。 請幫助清除我的疑問。迭代器接口和方法
IIRC al.iterator()'會返回一個'Iterator',因此不需要演員。這只是因爲你從'Iterator itr'中刪除了泛型。順便說一句,'ArrayList '也是如此,如果你遇到不同的結果你很可能有不同的代碼(例如你在這種情況下使用'Iterator ')。 –
Thomas
您可以將'Iterator itr'更改爲'Iterator itr'。 –
Zircon
我相信你還是必須施放:'String st =(String)itr.next();否則它不會編譯。如果列表中的對象類型是字符串,您是如何認爲不需要投射的? – SomeDude