码迷,mamicode.com
首页 > 其他好文 > 详细

list集合存引用数据类型时的问题

时间:2019-09-07 15:58:33      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:java   内容   out   lang   存储   int   new   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);
        }

结果:

原始数据:
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中元素内容的改变

list集合存引用数据类型时的问题

标签:java   内容   out   lang   存储   int   new   list集合   结果   

原文地址:https://blog.51cto.com/12721734/2436419

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!