在 Java 中,Queue 接口是一个用于队列的集合接口,常用的实现类有 LinkedList、PriorityQueue 和 ArrayDeque。Queue 接口中有两个方法 poll() 和 remove(),它们都是从队列中获取并删除队头元素的方法,它们的区别如下:
- 如果队列为空,调用 poll() 方法返回 null,而不是抛出异常;而调用 remove() 方法则会抛出 NoSuchElementException 异常。
- remove() 方法是 Queue 接口中定义的方法,而 poll() 方法是 Deque 接口中定义的方法,因此在实现 Deque 接口的类(如 LinkedList 和 ArrayDeque)中,poll() 方法和 remove() 方法的行为是相同的。
因此,在需要获取队头元素并删除时,建议使用 poll() 方法,避免出现 NoSuchElementException 异常。