Java ArrayList 操作一点需要注意的地方
2012-04-26 07:57
429 查看
看一下代码
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);
}
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);
}
相关文章推荐
- java读文件操作需要注意的地方
- 在java中使用常量变量的一些需要注意的地方
- Socket:java与C之间的文件传送<3>(JAVA与C通信需要注意的地方)
- JAVA中 重写与重载需要注意的地方
- java项目写yml配置文件时候需要注意的几个地方
- 黑马程序员 关于包装类的自动封箱与拆箱操作需要注意的地方
- JAVA性能优化需要注意的26个地方
- ACM中用Java水高精度需要注意的2个地方
- 在Java中类的设计需要注意的地方
- 关于将java测试代码移植到jmeter和loadrunner需要注意的地方
- Socket:java与C之间的文件传送<3>(JAVA与C通信需要注意的地方)
- java积累(二)----freemarker把jsp页面转换成html需要注意的地方---freemarker的坑
- [原]java.util.Calendar的MilliSecond域需要注意的地方
- linux操作系统下发布java项目需要注意的地方
- JDBCTemplate简化JDBC的操作(三)需要注意的地方
- [python]decimal常用操作和需要注意的地方
- 几个提升java性能需要注意的地方
- 使用Java中的final变量需要注意的地方
- Javascript中计算浮点数时的一点需要注意的地方
- 使用java api操作es需要注意的地方(Elasticsearch开启shield插件之后)