📜  Java中的 LinkedBlockingQueue poll() 方法(1)

📅  最后修改于: 2023-12-03 14:42:48.524000             🧑  作者: Mango

Java中的 LinkedBlockingQueue poll() 方法

简介

LinkedBlockingQueue是Java中的一个线程安全的可选有界阻塞队列实现。它是基于链表数据结构的队列,支持FIFO(先进先出)的操作。poll() 方法是LinkedBlockingQueue类中用于从队列中获取并移除头元素的方法。

方法签名
public E poll()
返回值

如果队列为空,则返回null;否则返回队列的头元素。

使用示例
import java.util.concurrent.LinkedBlockingQueue;

public class Main {
    public static void main(String[] args) {
        LinkedBlockingQueue<String> queue = new LinkedBlockingQueue<>(5);
        queue.add("Java");
        queue.add("Python");
        queue.add("C++");

        String headElement = queue.poll();
        System.out.println("Head Element: " + headElement); // Output: Head Element: Java
        System.out.println("Queue Size: " + queue.size());  // Output: Queue Size: 2
    }
}
解释
  1. 首先,我们创建一个容量为5的LinkedBlockingQueue实例,并添加了3个元素:Java,Python和C++。
  2. 然后,我们使用poll()方法从队列中获取并移除头元素。由于队列非空,返回的头元素是"Java"。
  3. 最后,我们打印出获取的头元素和队列的大小。
注意事项
  • 当LinkedBlockingQueue为空时,调用poll()方法会返回null。
  • 如果LinkedBlockingQueue是有界队列,并且已满,调用poll()方法也会返回null。
参考资料