JAVA學習中的一點小發現:LinkedList中.poll()方法在輸出時使用應注意的小點
阿新 • • 發佈:2019-02-04
在學習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()方法的含義:找到並刪除表頭。所以在順序輸出時要注意輸出範圍的選擇,否則有可能出現輸出遺漏的問題。
在機考過程中此問題容易被發現,筆試時要尤為注意,可能出現錯誤!