在学习JAVA类集一章中关于LinkedList子类中.poll()方法易错点的分析心得
例如如下代码:
package Test;
import java.util.LinkedList;
public class LinkedListDemo01 {
public static void main(String[] args) {
LinkedList<String> link=new LinkedList<String>();
link.add("A");
link.add("B");
link.add("B");
link.add("C");
link.add("C");
link.add("C");
link.add("C");
System.out.print("初始化:"+link);
link.addFirst("X");
link.addLast("Y");
System.out.print("初始化之后:"+link);
System.out.print("找表头:"+link.poll());
System.out.print("按顺序输出:");
for(int i=0;i<=link.size()+1;i++){
System.out.print(link.poll()+"、");
}
}
}
最后“按顺序输出”的结果是什么呢?
换成:
package Test;
import java.util.LinkedList;
public class LinkedListDemo01 {
public static void main(String[] args) {
LinkedList<String> link=new LinkedList<String>();
link.add("A");
link.add("B");
link.add("B");
link.add("C");
link.add("C");
System.out.print("初始化:"+link);
link.addFirst("X");
link.addLast("Y");
System.out.print("初始化之后:"+link);
System.out.print("找表头:"+link.poll());
System.out.print("按顺序输出:");
for(int i=0;i<=link.size()+1;i++){
System.out.print(link.poll()+"、");
}
}
}
最后按“顺序输出”的结果是又什么呢?
换成:
package Test;
import java.util.LinkedList;
public class LinkedListDemo01 {
public static void main(String[] args) {
LinkedList<String> link=new LinkedList<String>();
link.add("A");
link.add("B");
link.add("B");
link.add("C");
link.add("C");
link.add("C");
link.add("C");
link.add("C");
System.out.print("初始化:"+link);
link.addFirst("X");
link.addLast("Y");
System.out.print("初始化之后:"+link);
System.out.print("找表头:"+link.poll());
System.out.print("按顺序输出:");
for(int i=0;i<=link.size()+1;i++){
System.out.print(link.poll()+"、");
}
}
}
最后按“顺序输出”的结果是又什么呢?
其实这里应该注意.poll()方法的含义:找到并删除表头。所以在顺序输出时要注意输出范围的选择,否则有可能出现输出遗漏的问题。
在机考过程中此问题容易被发现,笔试时要尤为注意,可能出现错误!