参照データ型の問題のリスト記憶された設定
セットリストの記憶素子:
リストは基本データ・タイプに格納されている場合(1)、値が格納されています
リストは(等オブジェクト、など)が基準データ型に格納されている場合(2)、参照が格納されています
オブジェクト参照アドレスは、コンテンツの変更を変更していない場合は、呼び出し元のオブジェクトの内容の変化を引き起こす可能性があります
たとえば、コレクション内のオブジェクトの格納されたリストを次に示します。
//构建原始数据
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}
オブジェクトに格納された参照いうリストの内容が変更されたため、要素のリストの内容の変更を伴う:結果があることを示します