直接看例子:
for(int i=0;i<3;i++){
System.out.println(link.poll()+","+i);
}
打印:
A,0
B,1
C,2
肯定是正常的,这个毫无疑问。
看你说的那种情况
我添加两行代码:
for(int i=0;i<link.size();i++){
System.out.println(link.size()+" link.size()---------before pool");//观察去掉之前的长度
System.out.println(link.poll()+","+i);
System.out.println(link.size()+" link.size()-----after pool");//观察去掉之后的长度
}
打印:
3 link.size()---------before pool
A,0
2 link.size()-----after pool
2 link.size()---------before pool
B,1
1 link.size()-----after pool
最后一次当link.size()=1的时候,此时i=1
这样不满足循环条件所,所以就会出现剩下一个的情况
|