Java中的PriorityBlockingQueue take()方法

Java中的PriorityBlockingQueue take()方法

PriorityBlockingQueuetake() 方法移除队列头并返回其值。如果队列为空,则此方法将等待直至有元素可用。

语法:

public E take() throws InterruptedException

返回值: 此方法返回PriorityBlockingQueue的头部值。

异常: 如果等待一个元素可用时被中断,则此方法抛出InterruptedException异常。

以下程序说明PriorityBlockingQueue的take()方法:

示例1: 演示包含数字列表的PriorityBlockingQueue上的take()方法。

// Java程序演示PriorityBlockingQueue的take()方法

import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;

public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {

        // 创建PriorityBlockingQueue对象
        PriorityBlockingQueue<Integer> PrioQueue
            = new PriorityBlockingQueue<Integer>();

        // 添加数字到PriorityBlockingQueue
        PrioQueue.put(7855642);
        PrioQueue.put(35658786);
        PrioQueue.put(5278367);
        PrioQueue.put(74381793);

        // 移除前打印队列
        System.out.println("Queue: " + PrioQueue);

        // 应用take()方法
        int head = PrioQueue.take();

        // 用take()方法打印队列头
        System.out.println("Head of PriorityBlockingQueue"
                                   + " using take(): " + head);

        System.out.print("After removing head, Queue: "
                                  + PrioQueue);
    }
}
队列:[5278367, 35658786, 7855642, 74381793]
使用take()的PriorityBlockingQueue头:5278367
移除头部后,队列:[7855642, 35658786, 74381793]

示例2: 演示PriorityBlockingQueue上包含字符串的take()方法。

// Java程序演示PriorityBlockingQueue的take()方法

import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;

public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {

        // 创建PriorityBlockingQueue对象
        // 包含字符串
        PriorityBlockingQueue<String> names
            = new PriorityBlockingQueue<String>();

        // 添加字符串
        names.add("Geeks");
        names.add("forGeeks");
        names.add("A computer portal");

        // 打印字符串列表
        System.out.println(names);

        // 应用take()方法
        String head = names.take();

        // 用take()方法打印队列头
        System.out.println("Queue head: "
                                   + head);
        System.out.print("After removing head, Queue: "
                                  + names);
    }
}
[A computer portal, forGeeks, Geeks]
队列头:A computer portal
移除队列头后,队列:[Geeks, forGeeks]

参考代码: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#take–

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程