为啥List的set方法替换出错,求详细解释

  • 图片说明
  • 图片说明
  • 替换错误结果:
  • 11 10
  • 10 10
  • 10 10
  • 30 10
  • 40 10
  • 预想替换结果:
  • 11 10
  • 10 10
  • 20 10
  • 30 10
  • 40 10

temp = a.get(i - 1); 这个是浅拷贝,简单来说
a.set(i, temp);
这两行执行完了,i和i-1两行指向同一个对象,而你循环里面对i-1的修改,其实作用在了i上。

用迭代器遍历List,iterator