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

java面试

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

  • 相同点:都是返回第一个元素,并在队列中删除返回的对象。
  • 不同点:如果没有元素 poll()会返回 null,而 remove()会直接抛出 NoSuchElementException 异常。

Queue-poll

    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        queue.offer("string"); // add
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        System.out.println(queue.size());
    }

返回

string
null
0

Queue-remove

用remove时

    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        queue.offer("string"); // add
        System.out.println(queue.poll());
        System.out.println(queue.remove());
        System.out.println(queue.size());
    }

NoSuchElementException的异常

Exception in thread "main" string
java.util.NoSuchElementException
    at java.util.LinkedList.removeFirst(LinkedList.java:270)
    at java.util.LinkedList.remove(LinkedList.java:685)
    at mytest.Mytest.main(Mytest.java:20)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容