goback add

Java ArrayList操作一点需要注意的地方

3124 点击·0 回帖
灯火互联
楼主


看一下代码
ArrayList<String> arrayList = new ArrayList<String>();
String temp = null;
for(int i = 0; i < 10; i ++;)
{
temp = i + "' ;
arrayList.add(temp);
}

输出arrayList中的各个元素,你会发现都是9,为什么呢?

检查半天发现arrayList中存的只是一个,上述代码不断的向arrayList中加入temp这个变量,
但是事实上temp的内存只有一个,arrayList的所有元素都指向这个内存的地址
所以在最后一次temp改变之后,因为arrayList中的所有元素都指向这个内存地址,所以输出发现arrayList中的元素都为9

改成这样就能成功了:
ArrayList<String> arrayList = new ArrayList<String>();

for(int i = 0; i < 10; i ++;)
{
String temp = i + "' ;
arrayList.add(temp);
}




喜欢0 评分0