Java中的PriorityBlockingQueue offer()方法

1.报价(E)方法

这个 报价(E) 方法 优先阻塞队列 插入元素e ,在此PriorityBlockingQueue中作为参数传递。此方法将元素插入此PriorityBlockingQueue。由于PriorityBlockingQueue是无界的,因此永远不会阻止此方法。

null

语法:

public boolean offer(E e)

参数: 此方法接受一个参数 E 它表示我们要插入到PriorityBlockingQueue中的元素e。

返回: 如果插入成功,此方法将返回布尔响应true。

例外情况: 此方法引发以下异常。

  • 类别例外 –如果指定的元素无法根据PriorityBlockingQueue的顺序与优先级队列中当前的元素进行比较。
  • 空指针异常 –如果元素为空

下面的程序演示了PriorityBlockingQueue的offer()方法:

例1: 程序演示PriorityBlockingQueue上的offer()方法,以添加数字列表。

// Java Program Demonstrate offer()
// method of PriorityBlockingQueue
import java.util.concurrent.PriorityBlockingQueue;
public class GFG {
public static void main(String[] args)
{
// define capacity of PriorityBlockingQueue
int capacityOfQueue = 5 ;
// create object of PriorityBlockingQueue
PriorityBlockingQueue<Integer> PrioQueue
= new PriorityBlockingQueue<Integer>(capacityOfQueue);
// Add numbers to PriorityBlockingQueue using offer()
PrioQueue.offer( 35658786 );
PrioQueue.offer( 5278367 );
PrioQueue.offer( 74381793 );
PrioQueue.offer( 87625142 );
// print elements of PriorityBlockingQueue
System.out.println( "Queue Contains:" );
System.out.println(PrioQueue.toString());
}
}


输出:

Queue Contains:
[5278367, 35658786, 74381793, 87625142]

例2: 该程序演示了当我们试图将null添加到PriorityBlockingQueue时,offer()方法引发的异常。

// Java Program Demonstrate offer()
// method of PriorityBlockingQueue
import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// define capacity of PriorityBlockingQueue
int capacityOfQueue = 5 ;
// create object of PriorityBlockingQueue which contains
// name of students
PriorityBlockingQueue<String> names
= new PriorityBlockingQueue<String>(capacityOfQueue);
// Add names of students of girls college
names.offer( "Joyita" );
names.offer( "Priyanka" );
// try to insert null value in offer method
try {
names.offer( null );
}
catch (Exception e) {
// print error details
System.out.println( "Exception Thrown: " + e);
}
}
}


输出:

Exception Thrown: java.lang.NullPointerException

2.提供(E、长超时、时间单位)方法

这个 报价(E、长超时、时间单位) 方法 优先阻塞队列 插入元素e ,在此PriorityBlockingQueue中作为参数传递。此方法将元素插入此PriorityBlockingQueue。由于PriorityBlockingQueue是无界的,因此该方法将永远不会被阻止,超时和时间单位参数将被忽略。此方法继承自priorityBlockingQueue的Supercals,priorityBlockingQueue是BlockingQueue类,但由于priorityBlockingQueue从不阻止要插入的新元素,因此从super类继承的此方法在逻辑上与offer(E)方法相同。

语法:

offer(E e, long timeout, TimeUnit unit)

参数: 此方法接受三个参数

  1. E :要插入PriorityBlockingQueue的元素。
  2. 暂停 :此参数被忽略,因为队列从不阻止新元素插入。
  3. 单元 :此参数也被忽略,因为队列从不阻止新元素插入。

返回: 如果插入成功,此方法将返回布尔响应true。

例外情况: 此方法引发以下异常。

  • 类别例外 –如果指定的元素无法根据PriorityBlockingQueue的顺序与优先级队列中当前的元素进行比较。
  • 空指针异常 –如果元素为空

下面的程序说明了优先阻塞队列的提供(E、长超时、时间单位)方法:

例1: 程序演示PriorityBlockingQueue上的offer(E,long timeout,TimeUnit)方法,以添加数字列表。

// Java Program Demonstrate offer()
// method of PriorityBlockingQueue
import java.util.concurrent.PriorityBlockingQueue;
import java.util.concurrent.TimeUnit;
public class GFG {
public static void main(String[] args)
{
// define capacity of PriorityBlockingQueue
int capacityOfQueue = 5 ;
// create object of PriorityBlockingQueue
PriorityBlockingQueue<Integer> PrioQueue
= new PriorityBlockingQueue<Integer>(capacityOfQueue);
// Add 3 elements to PriorityBlockingQueue using
// offer(Element e, long timeout, TimeUnit unit)
System.out.println( "adding 1234 "
+ PrioQueue.offer( 1234 ,
5 , TimeUnit.SECONDS));
System.out.println( "adding 2345 "
+ PrioQueue.offer( 2345 ,
5 , TimeUnit.SECONDS));
System.out.println( "adding 3456 "
+ PrioQueue.offer( 3456 ,
5 , TimeUnit.SECONDS));
// print elements of PriorityBlockingQueue
System.out.println( "Queue Contains:" );
System.out.println(PrioQueue.toString());
}
}


输出:

adding 1234 true
adding 2345 true
adding 3456 true
Queue Contains:
[1234, 2345, 3456]

参考:

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享