当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java PriorityBlockingQueue take()用法及代码示例


PriorityBlockingQueue的take()方法在删除队列后将其返回。如果queue为空,则此方法将等待直到元素可用。

用法:

public E take() throws InterruptedException

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


异常:如果在等待元素可用时被中断,则此方法将引发InterruptedException。

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

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

// Java Program Demonstrate take() 
// method of PriorityBlockingQueue 
  
import java.util.concurrent.PriorityBlockingQueue; 
import java.util.*; 
  
public class GFG { 
    public static void main(String[] args) 
        throws InterruptedException 
    { 
  
        // create object of PriorityBlockingQueue 
        PriorityBlockingQueue<Integer> PrioQueue 
            = new PriorityBlockingQueue<Integer>(); 
  
        // Add numbers to PriorityBlockingQueue 
        PrioQueue.put(7855642); 
        PrioQueue.put(35658786); 
        PrioQueue.put(5278367); 
        PrioQueue.put(74381793); 
  
        // before removing print queue 
        System.out.println("Queue: " + PrioQueue); 
  
        // Apply take() method 
        int head = PrioQueue.take(); 
  
        // Print head of queue using take() method 
        System.out.println("Head of PriorityBlockingQueue"
                           + " using take(): " + head); 
  
        System.out.print("After removing head, Queue: "
                         + PrioQueue); 
    } 
}
输出:
Queue: [5278367, 35658786, 7855642, 74381793]
Head of PriorityBlockingQueue using take(): 5278367
After removing head, Queue: [7855642, 35658786, 74381793]

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

// Java Program Demonstrate take() 
// method of PriorityBlockingQueue 
  
import java.util.concurrent.PriorityBlockingQueue; 
import java.util.*; 
  
public class GFG { 
    public static void main(String[] args) 
        throws InterruptedException 
    { 
  
        // create object of PriorityBlockingQueue 
        // which contains Strings 
        PriorityBlockingQueue<String> names 
            = new PriorityBlockingQueue<String>(); 
  
        // Add string 
        names.add("Geeks"); 
        names.add("forGeeks"); 
        names.add("A computer portal"); 
  
        // print list of names 
        System.out.println(names); 
  
        // Apply take() method 
        String head = names.take(); 
  
        // Print head of queue using take() method 
        System.out.println("Head of Queue: "
                           + head); 
        System.out.print("After removing head, Queue: "
                         + names); 
    } 
}
输出:
[A computer portal, forGeeks, Geeks]
Head of Queue: A computer portal
After removing head, Queue: [Geeks, forGeeks]

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



相关用法


注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 PriorityBlockingQueue take() method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。