我面临的问题是我有一个由不同行组成的arraylist。现在我要复制一行并将其附加到相同的arraylist中。现在,如果我更改任一行中的值,它会反映在两行中我不想要这样。我已经有用户
了orderList.add(订单)
但它没有按照我想要的方式工作。还有其他办法吗?
答案 0 :(得分:1)
您可能正在修改该对象。在您阅读列表之前,请创建该行的新实例并复制该值。
不要将新分配的内存的引用分配给上一行。
例如
MyObj row = arrList.get(1);
现在,如果您将其添加到列表中,如下所示
arrList.add ( row ) ;
然后对
row
的任何更改都将修改列表中的两个元素。
相反
MyObj newObj = new MyObj ( row );
arrList.add ( newObj ) ;
现在您可以单独更改任何对象。