JAVA:在迭代器iterator內(nèi)修改隊(duì)列內(nèi)的對(duì)象元素
????今天在寫程序時(shí),想利用iterator遍歷時(shí)修改ArrayDeque內(nèi)的對(duì)象,但是出現(xiàn)了錯(cuò)誤,發(fā)現(xiàn)無法修改,錯(cuò)誤如下:
?????自己定義的Page類:

????出錯(cuò)代碼:

????錯(cuò)誤結(jié)果:

????錯(cuò)誤原因:
????????雖然我們讓迭代器的變量指向了新的Page對(duì)象,但是集合中元素對(duì)象本身并沒有改變,相當(dāng)于迭代器的變量開始指向了集合元素對(duì)象的地址,后來指向了Page(4)的地址,但是集合元素對(duì)象本身并沒有改變,即我們沒有修改集合。
????????但是如果使用next.setPageName(4),這時(shí)候情況就不一樣了,相當(dāng)于迭代器的變量開始指向了集合元素對(duì)象的地址,并根據(jù)這個(gè)地址,進(jìn)入集合對(duì)象家里對(duì)其家里的東西進(jìn)行了修改。
????修改后:

????結(jié)果:

標(biāo)簽: