猿问

遍历Queue发现一个小问题

今天自学Queue的时候,学习到如何取出队列中所有元素,这是使用while去遍历的时候:

 Queue<String> queue = new LinkedList<String>();
 queue.offer("a");
 queue.offer("b");
 queue.offer("c");
 queue.offer("d");
 queue.offer("e");
 while(queue.size()>0){
    String poll = queue.poll();
    System.out.print(poll+" ");
 }
 System.out.println("\n"+queue);

此刻可以全部输出,并且原队列中已经没有元素了。

然后我用新循环去取同样的队列元素

 for(String s : queue){
     System.out.print(s+" ");
 }
 System.out.println("\n"+queue);

元素同样全部能够取到,但发现队列中的元素还在。

http://img.mukewang.com/57ec97220001309f01430058.jpg


请问,这是怎么实现的?新循环循环队列的时候调用的不是poll()方法吗?如果不是,是什么?

感谢回答!

MrMark
浏览 2308回答 1
1回答

月落乌啼落日圆

                               poll()方法是用来实现检索并移除此队列的头,如果此队列为空,则返回null。 foreach是对queue进行遍历,不会影响queue中的数据。                            
随时随地看视频慕课网APP

相关分类

Java
我要回答