list集合存引用数据类型时的问题
集合list的存储元素:
(1)如果list中存的是基本数据类型,则存的是值
(2)如果list中存的是引用数据类型(如对象等),则存的是引用
如果对象的引用地址没变,内容变化,也会引起调用该对象时内容变化
下面举一个在集合list中存放对象的例子:
//构建原始数据 ArrayList<Goods> list = new ArrayList(); Goods goods1=new Goods("plum ", 2); list.add(goods1); list.add(new Goods("apple", 1)); list.add(new Goods("banana", 2)); //打印原始数据 System.out.println("原始数据:"); for(Goods goods : list){ System.out.println(goods); } goods1.setGoodsId(444);//改变goods1的内容 System.out.println("原始数据1:"); for(Goods goods : list){ System.out.println(goods); }
结果:
原始数据:Goods{goodsName='plum ', goodsId=2}Goods{goodsName='apple', goodsId=1}Goods{goodsName='banana', goodsId=2}原始数据1:Goods{goodsName='plum ', goodsId=444}Goods{goodsName='apple', goodsId=1}Goods{goodsName='banana', goodsId=2}
结果表明:由于list中存储对象的引用所指的内容发生了变化,所以导致了list中元素内容的改变
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。