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

java面试

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

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

Queue-poll

    public static void main(String[] args) {
        Queue queue = new LinkedList();
        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 queue = new LinkedList();
        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)

你可能感兴趣的:(在 Queue 中 poll()和 remove()有什么区别)