list集合存引用数据类型时的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list集合存引用数据类型时的问题相关的知识,希望对你有一定的参考价值。
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);
结果:
原始数据:
GoodsgoodsName=‘plum ‘, goodsId=2
GoodsgoodsName=‘apple‘, goodsId=1
GoodsgoodsName=‘banana‘, goodsId=2
原始数据1:
GoodsgoodsName=‘plum ‘, goodsId=444
GoodsgoodsName=‘apple‘, goodsId=1
GoodsgoodsName=‘banana‘, goodsId=2
结果表明:由于list中存储对象的引用所指的内容发生了变化,所以导致了list中元素内容的改变
以上是关于list集合存引用数据类型时的问题的主要内容,如果未能解决你的问题,请参考以下文章