public class shiyan {
public static void main(String[] args) {
ArrayList<Integer> a=new ArrayList<Integer>();
a.add(new Integer(1));
a.add(new Integer(2));
while(a.Iterator().hasNext())
{
a.Iterator().next();
System.out.println("1");
}
}
}
代码如上。
我想遍利a ,只需要循环两次,可是不知道怎么样陷入死循环。
[quote]while(a.Iterator().hasNext())
{
a.Iterator().next();
System.out.println("1");
} [/quote]
修改为==>
[quote]Iterator itr = a.Iterator();
while(itr.hasNext())
{
itr.next();
System.out.println("1");
} [/quote]
循环里面每次都生成一个 a.iterator()所以永远出不来了.
[quote] while(a.Iterator().hasNext()) [/quote]
而且从性能上考虑,也不建议这么写,应该把a.Iterator()放在外面。
假如你放在while里,那么只要hasNext()存在。。则又会执行a.Iterator
你这种写法有点OUT :wink: