java集合類遍歷有個常見的問題就是想在Iterator里面去判斷刪除某個符合條件的元素的時候,如果使用List.remove()的方法就會會報出ConcurrentModificationException。
解決方法就是用Iterator.remove()方法苍苞。
熟悉ArrayList的都知道袭祟,它是數(shù)組實現(xiàn)的熟空。數(shù)組的特性就是長度不可變昏名,如果要改變它就必須new一個新的數(shù)組渠抹。而且另一個集合類LinkedList底層是鏈表實現(xiàn)的樱报,所以說如果是刪除較多的場景還是推薦使用LinkedList葬项。
OK。進(jìn)入正題迹蛤,今天主要是說java這個迭代器模式是怎么實現(xiàn)的玷室。
ArrayList類根據(jù)繼承過來的Iterator方法零蓉,依賴一個Iterator接口的實現(xiàn)類Iter。然后實現(xiàn)對數(shù)組的遍歷穷缤。