Java List的迭代器(Iterator)是一種用于遍歷集合元素的工具,它具有以下特點:
通用性:List的迭代器可以用于遍歷所有實現了Iterable接口的集合類,如ArrayList、LinkedList等。
安全性:迭代器在遍歷過程中,可以對集合進行刪除操作,而不會出現ConcurrentModificationException異常。這是因為迭代器在內部維護了一個修改計數器,當集合被修改時,迭代器會更新計數器,從而確保在遍歷過程中不會出現不一致的情況。
可選操作:List的迭代器支持remove()方法,可以在遍歷過程中刪除當前遍歷到的元素。但是,需要注意的是,remove()方法只能在調用next()方法之后調用,否則會拋出IllegalStateException異常。
不支持增加元素:List的迭代器不支持add()方法,即不能在遍歷過程中直接添加元素。如果需要添加元素,可以使用集合類自身的add()方法。
順序訪問:迭代器只能按照元素的順序訪問集合,不能隨機訪問。如果需要隨機訪問,可以使用集合類自身的get()方法。
快速失敗:如果在迭代過程中,集合被其他線程修改(非迭代器自身的remove()方法),那么迭代器會拋出ConcurrentModificationException異常。這是因為迭代器在內部維護了一個修改計數器,當檢測到集合被修改時,會拋出異常。
可重復遍歷:迭代器可以多次遍歷同一個集合,每次遍歷都需要創建一個新的迭代器實例。
節省內存:迭代器在遍歷過程中,只需要保存當前遍歷到的元素和下一個元素的引用,不需要保存整個集合的引用,因此在內存使用上相對較為節省。