黑马程序员技术交流社区
标题:
LinkedList中取元素没有取出来!!!
[打印本页]
作者:
leo_lzj
时间:
2014-6-3 18:01
标题:
LinkedList中取元素没有取出来!!!
import java.util.*;
class LinkedListDemo
{
public static void main(String[] args)
{
LinkedList<String> link = new LinkedList<String>();
link.offerLast("leo01");
link.offerLast("leo06");
link.offerLast("leo04");
link.offerLast("leo03");
System.out.println(link);
System.out.println(link.size());//4
for(int x=0;x<link.size();x++)
{
System.out.println(link.pollFirst());
}
}
}
复制代码
代码如上。
打印了link的大小 是4个元素,通过for循环遍历取出元素,为什么只取出了前两个元素呢?为什么不是全部取出来(四个)?
作者:
、海
时间:
2014-6-3 20:01
因为pollFirst(),方法在取出元素的同时 会把元素从集合中删除,导致x循环到x=2时候,已经取了2个元素走了link.size()就为2了,就不满足x=2<link.size()=2,所以循环到这里就结束了
作者:
sheng6699
时间:
2014-6-3 20:11
同意前台哥。
作者:
true
时间:
2014-6-3 20:16
我是来围观的!
作者:
北雁南飞
时间:
2014-6-3 22:54
for循环里面你为什么不用link.get(x)方法遍历呢?pollFirst()本身就在删除集合中的元素,你这样遍历本身就存在着问题!把pollFirst()改成get(x)就好了!
作者:
热血青年
时间:
2014-6-4 00:20
学习了 不错 ~~~~~~
作者:
kongyan4696
时间:
2014-6-4 15:20
class LinkedListDemo
{
public static void main(String[] args)
{
LinkedList<String> link = new LinkedList<String>();
link.offerLast("leo01");
link.offerLast("leo06");
link.offerLast("leo04");
link.offerLast("leo03");
System.out.println(link);
System.out.println(link.size());//4
for(;!link.isEmpty();)
{
System.out.println(link.pollFirst());
}
}
}
复制代码
link.pollFirst()改变了link.size(),
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2