更新時間:2023-04-10 來源:黑馬程序員 瀏覽量:
在Java中,Queue是一個接口,它有許多實現(xiàn)類,如LinkedList,PriorityQueue等。Queue接口提供了許多方法,其中poll()和remove()是兩個常用的方法。它們的區(qū)別在于,當(dāng)隊列為空時,poll()方法返回null,而remove()方法會拋出NoSuchElementException異常。
下面是Java代碼演示poll()和remove()方法的區(qū)別:
import java.util.LinkedList; import java.util.Queue; public class QueueDemo { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); // 添加元素到隊列 queue.offer("A"); queue.offer("B"); queue.offer("C"); // 使用poll()方法獲取并移除隊列頭部的元素 System.out.println("使用poll()方法獲取并移除隊列頭部的元素:"); while(!queue.isEmpty()){ System.out.println(queue.poll()); } // 重新添加元素到隊列 queue.offer("A"); queue.offer("B"); queue.offer("C"); // 使用remove()方法獲取并移除隊列頭部的元素 System.out.println("使用remove()方法獲取并移除隊列頭部的元素:"); while(!queue.isEmpty()){ System.out.println(queue.remove()); } } }
輸出結(jié)果為:
使用poll()方法獲取并移除隊列頭部的元素: A B C 使用remove()方法獲取并移除隊列頭部的元素: A B C
在第一個while循環(huán)中,我們使用了poll()方法獲取并移除隊列頭部的元素,這時隊列為空,循環(huán)結(jié)束。在第二個while循環(huán)中,我們使用了remove()方法獲取并移除隊列頭部的元素,由于隊列為空,這時會拋出NoSuchElementException異常。