1. 程式人生 > >JAVA學習中的一點小發現:LinkedList中.poll()方法在輸出時使用應注意的小點

JAVA學習中的一點小發現:LinkedList中.poll()方法在輸出時使用應注意的小點

在學習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()方法的含義:找到並刪除表頭。所以在順序輸出時要注意輸出範圍的選擇,否則有可能出現輸出遺漏的問題。

在機考過程中此問題容易被發現,筆試時要尤為注意,可能出現錯誤!