list集合存引用数据类型时的问题-创新互联

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

集合list的存储元素:

创新互联-专业网站定制、快速模板网站建设、高性价比石龙网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式石龙网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖石龙地区。费用合理售后完善,十余年实体公司更值得信赖。

(1)如果list中存的是基本数据类型,则存的是值

(2)如果list中存的是引用数据类型(如对象等),则存的是引用

如果对象的引用地址没变,内容变化,也会引起调用该对象时内容变化

下面举一个在集合list中存放对象的例子:

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

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


新闻名称:list集合存引用数据类型时的问题-创新互联
文章起源:http://csdahua.cn/article/cosgdh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流