JAVA:在迭代器iterator内修改队列内的对象元素
今天在写程序时,想利用iterator遍历时修改ArrayDeque内的对象,但是出现了错误,发现无法修改,错误如下:
自己定义的Page类:

出错代码:

错误结果:

错误原因:
虽然我们让迭代器的变量指向了新的Page对象,但是集合中元素对象本身并没有改变,相当于迭代器的变量开始指向了集合元素对象的地址,后来指向了Page(4)的地址,但是集合元素对象本身并没有改变,即我们没有修改集合。
但是如果使用next.setPageName(4),这时候情况就不一样了,相当于迭代器的变量开始指向了集合元素对象的地址,并根据这个地址,进入集合对象家里对其家里的东西进行了修改。
修改后:

结果:
