java集合之迭代器

2021-09-11 08:49:23 字數 1472 閱讀 8330

迭代器簡述

迭代器(iterator)是一種設計模式、提供了一種方法,來對集合、容器進行遍歷的方式,不需要關注底層資料結構和資料型別,來達到底層和上層遍歷解耦的目的。

簡單來說呢,迭代器就是遍歷集合的一種方式,並且必須依賴於集合而存在!

但是他的底層實現還是不容易想通的,所以下面通過原始碼和我個人的理解來看一下啦~

方法詳解

iterator裡面有三個方法:

因為iterator是乙個介面,所以以arraylist中iterator的原始碼為例進行分析

private class

itr implements iterator

@suppresswarnings(

"unchecked"

) public e next()

//刪除元素

public void remove(

) catch (indexoutofbound***ception ex)

} final void checkforcomodification(

)}

注意事項迭代器使用例項

public

static

void

main

(string[

] args)

system.out.

println()

;}

對集合進行遍歷時還有另外兩種方法1.通過for遍歷

//通過for遍歷

for(int i =

0; i < arraylist.

size()

; i++

)system.out.

println()

;

2.增強for迴圈

//增強for迴圈--》底層是通過迭代器實現的

for(integer i :arraylist)

system.out.

println()

;

併發異常
public

在上面這種情況下程式就會丟擲併發異常

原因:集合本身修改會引起modcount版本號修改,而迭代器本身的版本號副本並未改變,因此會丟擲該異常

對併發異常的詳細理解,可以參考此鏈結

[博主講的很清楚)

java 集合迭代器

使用方法iterator要求容器返回iterator,iterator將準備返回序列的第乙個元素。將使用next 獲得虛類的下乙個元素,使用hasnext檢查序列中是否還有元素。使用remove將迭代器新近返回 的元素刪除。iterator可以 移除由next產生的最後乙個元素,所以remove之前...

集合框架之迭代器

iterable 介面 凡是實現了本介面的集合都可以用迭代的方式訪問。本介面的唯一方法是返回乙個迭代器。iterator 介面 迭代器。for object obj list for each 迴圈 只有所有實現iterable介面的實現類物件。也可以訪問陣列。for 定義乙個變數 要訪問的物件 定...

集合框架 之 迭代器

把取出方式定義在集合的內部,這樣取出方式就可以直接訪問集合內容的元素 這個去除方式被定義成了內部類。每個容器的資料結構不同,所以取出的動作細節也不一樣,但是他們都有共性內容 判斷和取出,所以就將這些共性抽取。那麼這些內部類都符合乙個規則,該規則就是iterator。如何獲取結合的取出物件呢?通過對外...