遍歷列表時(shí)將元素添加到列表中。(Java)
Iterator除了以外,您無法在修改集合時(shí)使用進(jìn)行迭代Iterator.remove()。
但是,如果使用listIterator()方法,該方法返回ListIterator,并對其進(jìn)行迭代,則您還有更多要修改的選項(xiàng)。從javadoc中獲取add():
新元素插入到隱式光標(biāo)之前:…后續(xù)調(diào)用prevIoUs()將返回新元素
鑒于此,此代碼應(yīng)該可以將新元素設(shè)置為迭代中的下一個(gè)元素:
ListIterator<T> i;i.add(e);i.prevIoUs(); // returns ei.prevIoUs(); // returns element before e, and e will be next
除了列表開始為空時(shí),這將起作用,在這種情況下,將沒有先前的元素。如果存在問題,則必須維護(hù)某種標(biāo)志以指示這種情況。
解決方法我的問題是我想在遍歷新元素的同時(shí)擴(kuò)展一個(gè)包含新元素的列表,并且希望迭代器繼續(xù)剛才添加的元素。
根據(jù)我的理解,ListIterator.add()會在列表中的當(dāng)前元素之前而不是之后添加一個(gè)元素。是否可以通過其他方式實(shí)現(xiàn)這一目標(biāo)?
相關(guān)文章:
1. 我的html頁面一提交,網(wǎng)頁便顯示出了我的php代碼,求問是什么原因?2. tp6表單令牌3. docker 17.03 怎么配置 registry mirror ?4. java 排序的問題5. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?6. django - 后臺返回的json數(shù)據(jù)經(jīng)過Base64加密,獲取時(shí)用python如何解密~!7. node.js - node 客戶端socket一直報(bào)錯(cuò)Error: read ECONNRESET,用php的socket沒問題哈。。8. 數(shù)據(jù)庫 - 使用讀寫分離后, MySQL主從復(fù)制延遲會導(dǎo)致讀不到數(shù)據(jù)嗎?9. 老哥們求助啊10. javascript - canvas 可以實(shí)現(xiàn) PS 魔法橡皮擦的功能嗎?
