java 迭代器iterator的原理 淺談

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

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

發佈了21 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章