首页常见问题正文

在Queue中poll()和remove()有什么区别?

更新时间:2023-04-10 来源:黑马程序员 浏览量:

IT培训班

  在Java中,Queue是一个接口,它有许多实现类,如LinkedList,PriorityQueue等。Queue接口提供了许多方法,其中poll()和remove()是两个常用的方法。它们的区别在于,当队列为空时,poll()方法返回null,而remove()方法会抛出NoSuchElementException异常。

  下面是Java代码演示poll()和remove()方法的区别:

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());
        }
    }
}

  输出结果为:

使用poll()方法获取并移除队列头部的元素:
A
B
C
使用remove()方法获取并移除队列头部的元素:
A
B
C

  在第一个while循环中,我们使用了poll()方法获取并移除队列头部的元素,这时队列为空,循环结束。在第二个while循环中,我们使用了remove()方法获取并移除队列头部的元素,由于队列为空,这时会抛出NoSuchElementException异常。

分享到:
在线咨询 我要报名
和我们在线交谈!