1. 程式人生 > >java 迭代器iterator的原理 淺談

java 迭代器iterator的原理 淺談

迭代器是工作在一個獨立的執行緒中,並且擁有一個mutex鎖,就是說iterator在工作的時候,是不允許被迭代的物件被改變的。iterator被建立的時候建立一個記憶體索引表(單鏈表),這個索引表指向原來的物件,當原來的物件數量改變的時候,這個索引表的內容沒有同步改變,所以當索引指標往下移的時候,便找不到要迭代的物件,於是錯誤。List、Set等是動態的,可變物件的數量的資料結構,但是iterator則是單向不可變的,只能順序讀取,不能逆序操作的資料結構,當iterator指向的原始資料發生變化時,iterator自己就迷失了方向。

next()返回遊標右邊的元素,並將遊標移到下一個位置。hasnext()判斷右邊是否又元素。