对list add 元素原理问题
往List集合循环add(对象)得到的是重复对象 - DC红茶 - 博客园
对象add入list中时,放入list中的其实是对象的引用,虽然每次循环对 对象中某些字段进行了setf赋值,但是实质上是同一个对象,在下一次循环add时,添加的还是同一个对象。因为地址是没有变化的。
解决办法:
使用new 创建新的对象,进行复制,然后再加入LIST
new这个关键字是开辟堆内存空间的,
上图只new了一次,所以只开辟一块内存空间, 这个时候的对象地址是唯一的,所以操作的永远是这块内存上的对象