當前位置:成語大全網 - 書法字典 - 集合中常用的三種遍歷方法

集合中常用的三種遍歷方法

1叠代器

運行結果

說明上面例子中的for和while不能使用同壹個叠代器對象,因為叠代器已經返回了while循環中的最後壹個元素,而指針指向的下壹個元素為空,即hasNext()的返回值為false,這個叠代器的hasNext()不能作為for循環的判斷條件。

2到Object[]進行遍歷。

運行結果

3使用增強的for(foreach)來實現遍歷

運行結果

“註意。'

增強對於有壹個缺點。如果集合或數組為null,會報告NullPointerException,所以最好在調用enhanced for之前先做壹個判斷。通過反編譯,我們可以看到增強的for是通過叠代器的for循環實現的,它是叠代器的替代品。叠代器也有空指針異常的問題。

4描述

運行的結果是,set元素的內容保持不變。

*4.2並發修改異常

4.2.1叠代器和foreach(增強for)遍歷循環,集合對象本身不能調用方法改變集合內容,否則會報錯Java . util . concurrency . character ization異常(並修改異常)。

原因是叠代器和foreach都依賴於集合。如果集合發生變化,叠代器和增強for不知道,所以它們報告並行修改異常。

運行結果

解決方案

a使用壹個普通的for循環,其中的內容根據判斷集進行修改。

b使用叠代器修改集合的內容,叠代器接口中沒有,其子類ListIterator接口提供add()。

詳見:/p/94b 12 CCE 6 c 7(2,3.3)。

4.3如果在集合對象的叠代器循環中多次使用next(),則會出現Java . util . nosuchelementexception異常。

運行結果

4.4叠代器的remove()可以刪除next()返回的元素,這被認為是改變了集合的內容,不能用叠代中元素的值來解釋,留下了。

運行結果