遍歷列表時(shí)將元素添加到列表中。(Java)
Iterator除了以外,您無(wú)法在修改集合時(shí)使用進(jìn)行迭代Iterator.remove()。
但是,如果使用listIterator()方法,該方法返回ListIterator,并對(duì)其進(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
除了列表開(kāi)始為空時(shí),這將起作用,在這種情況下,將沒(méi)有先前的元素。如果存在問(wèn)題,則必須維護(hù)某種標(biāo)志以指示這種情況。
解決方法我的問(wèn)題是我想在遍歷新元素的同時(shí)擴(kuò)展一個(gè)包含新元素的列表,并且希望迭代器繼續(xù)剛才添加的元素。
根據(jù)我的理解,ListIterator.add()會(huì)在列表中的當(dāng)前元素之前而不是之后添加一個(gè)元素。是否可以通過(guò)其他方式實(shí)現(xiàn)這一目標(biāo)?
相關(guān)文章:
1. python - 關(guān)于爬取網(wǎng)站,下載圖片的時(shí)候碰到網(wǎng)址結(jié)構(gòu)問(wèn)題卡住2. 用CSS3 box-sizing 屬性實(shí)現(xiàn)兩個(gè)并排的容器,如果想讓容器中間有間隔該如何實(shí)現(xiàn)3. css3 - <img>圓角屬性在手機(jī)瀏覽器顯示不全4. 引入traits后,為什么index得是空的呢?5. javascript - table固定尾行,有人寫(xiě)過(guò)嗎?6. pdo - mysql 簡(jiǎn)單注入疑問(wèn)7. javascript - js輸入框限定字?jǐn)?shù)問(wèn)題8. 為什么學(xué)習(xí)PHP9. javascript - vue項(xiàng)目里的package.json10. css - label文字居中
