list集合存引用數據類型時的問題

list集合存引用數據類型時的問題

集合list的存儲元素:java

(1)若是list中存的是基本數據類型,則存的是值app

(2)若是list中存的是引用數據類型(如對象等),則存的是引用ide

若是對象的引用地址沒變,內容變化,也會引發調用該對象時內容變化 code

下面舉一個在集合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);
        }

結果:it

原始數據:
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中元素內容的改變class

相關文章
相關標籤/搜索