MR中的iterator與ArrayList的iterator區別以及用法

背景:最近在寫MR程序時遇到一個奇怪的問題,利用iterator迭代器遍歷數據添加到List中時,保存在List中的元素都是最後遍歷的數據。

原因:因爲MR中的iterator.next()方法返回的是數據的引用,每次向List中添加都是把引用傳入而ArrayList中的iterator.next()方法返回的是數據,所以纔會導致如上情況。

解決:每次迭代重新創建一個對象加入List中即可。

List源碼:

MR中源碼:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章