这怎么是死循环?求指导!

ren_kang 发布于 2014/05/14 13:49
阅读 950
收藏 1
List<String> os = new ArrayList<String>();
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
os = list;
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
os.add(s);
System.out.println(os.size() + "os");
System.out.println(list.size() + "list");
}
加载中
0
stesshole
stesshole

os=list;

这行代码已经把os指向list了。

你循环的时候从list中取出一个元素又放到list里面,当然会死循环啦。

1
amonxu
amonxu

java基础啊,回去看fucking in java

Risol
Risol
《fucking in java》,必须顶啊
0
ren_kang
ren_kang
“os=list”集合不够这样赋值?
0
ericsoul
ericsoul
你这么赋值自己给自己嵌套了。每次给os add的时候list的size都增加了。你在for循环里面,打印一下他的size就知道了。
0
ren_kang
ren_kang
“=”是引用
0
八木
八木

虽说java没有指针,但这个可以用指针这么理解,他们指向同一个位置,os增加了,list的size也跟着增加(因为他们指着同一个地方啊),然后这个循环就就无穷匮也

0
仪山湖
仪山湖
os = list;让 os引用了list对象,也就是,虽然有两个变量名称,但都是引用同一个对象
0
r
roywang

1.os=list

2.i<list.size()每次都执行

0
Shazi199
Shazi199

去掉
os = list; 

即可

返回顶部
顶部