Java中Iterator迭代器的next()方法的新手易錯點。

GoLdeng233發表於2020-12-14

關於Iterator主要有三個方法:hasNext()、next()、remove()

hasNext:沒有指標下移操作,只是判斷是否存在下一個元素;

next:指標下移,返回該指標所指向的元素;

remove:刪除當前指標所指向的元素,一般和next方法一起用,這時候的作用就是刪除next方法返回的元素。

迭代器一般用於遍歷set、map等無序的儲存模型,用hasnext來判斷是否遍歷完成,再用next來呼叫所取元素的一些屬性來達成遍歷它的目的,然後初學者在這裡就會經常犯在if(hasnext())的方法體裡面呼叫兩次next()方法的錯誤,初學者以為呼叫的是同一元素,實際上算是呼叫了兩次next(),導致指標向後移動兩次。所以涉及到使用元素的多個屬性的遍歷時,用foreach就好。

相關文章