用Java分配运算符

前端之家收集整理的这篇文章主要介绍了用Java分配运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Java中有2个ArrayLists:
mProductList = new ArrayList<ProductSample>();
mProductList2 = new ArrayList<ProductSample>();

mProductList = productSampleList;

mProductList2 = productSampleList;

mProductList2 .remove(3);

productSampleList的大小为5.
为什么在执行此段代码之后. mProductList的大小是4?

我们有办法避免这种情况吗?我希望mProductList的大小为5,与productSampleList相同.
谢谢!

解决方法

试试这个:
mProductList2 = new ArrayList<ProductSample>(productSampleList);

就像目前一样,productSampleList,mProductList和mProductList2都指向同一个对象,因此对其他对象的更改将反映在其他对象上.我的解决方案是简单地创建一个可以独立于原始文件修改的列表副本,但请记住:productSampleList和mProductList仍然指向同一个对象.

猜你在找的Java相关文章