黑马程序员技术交流社区
标题:
ArrayList的使用
[打印本页]
作者:
ssx0101
时间:
2012-10-29 10:43
标题:
ArrayList的使用
本帖最后由 曹自祥 于 2012-11-14 20:20 编辑
import java.util.ArrayList;
public class TextAI {
public static void main(String[] args) {
// TODO Auto-generated method stub
User u=new User();
ArrayList<User> al=new ArrayList<User>();
for(int i=1;i<10;i++){
u.setId(i);
al.add(u);
}
for(User u1:al){
System.out.println(u1.getId());
}
}
}
class User{
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
复制代码
请写出结果是什么?并说明理由?
作者:
翁鹏
时间:
2012-10-29 10:50
全部是9,始终操作的只有u这一个对象!
作者:
何创
时间:
2012-10-29 10:55
9
9
9
9
9
9
9
9
9
输出结果是 这个,因为循环一次时候你的 i 自增加1 ,在未达到10,就是到9 的时候,然后存入ArrayList中,又循环输出,所以答案就是9个9.
作者:
崔政
时间:
2012-10-29 12:31
输出必须全部是9
User u=new User();
ArrayList<User> al=new ArrayList<User>();
for(int i=1;i<10;i++){
u.setId(i);//始终是一个对象,知识不停的改变它的ID号而已,最终到9.
al.add(u);
}
for(User u1:al){
System.out.println(u1.getId());
}
复制代码
作者:
宫明星
时间:
2012-10-29 13:49
/*
最后打印结果是9个9,为什么是9个9呢?
通过在循环外面手动添加一个“u.setId(10);”发现,打印结果变成了9个10.
由此得出虽然for循环是1-9的添加,但是控制的始终是一个User对象而已,
随着id添加到9,u的id的值打印出来的自然也就全部是9了。
*/
import java.util.ArrayList;
public class ArrayListTest
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
User u=new User();
ArrayList<User> al=new ArrayList<User>();
for(int i=1;i<10;i++)
{
u.setId(i);
al.add(u);
}
//u.setId(10);
//al.add(u);
for(User u1:al)
{
System.out.println(u1.getId()+"..."+u1.getName());
}
}
}
class User
{
int id;
String name;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
复制代码
作者:
ssx0101
时间:
2012-10-29 14:12
本帖最后由 曹自祥 于 2012-10-29 14:17 编辑
<FONT color=red>“03.通过在循环外面手动添加一个“u.setId(10);”发现,打印结果变成了9个10. ”</FONT> 应该是10个10。
复制代码
作者:
李靖
时间:
2012-10-29 19:07
arryList数组中放的是User对象,arrayList数组中存放的是User对象的地址引用,当修改User对象的属性时,arrayList数组自然跟着发生变化,因为只有一个对象,所以结果是最后修改后的结果。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2