offer(E e, long timeout, TimeUnit unit)
java.util.concurrent.LinkedTransferQueue類的offer(E e,long timeout,TimeUnit unit)方法是Java中的一個內置函數,如果隊列不是,則將作為參數傳遞的元素插入到此隊列的尾部。充分。
- 如果LinkedTransferQueue已滿,它將等待指定的時間以使空間可用。
- 指定的等待時間和時間的TimeUnit將作為offer方法的參數給出,因此它將等待那個時間,以便LinkedTransferQueue刪除某些元素,以便offer方法可以將元素添加到LinkedTransferQueue。
用法:
public boolean offer(E e, long timeout, TimeUnit unit)
參數:該函數接受以下參數:
- e–要插入的元素。
- timeout
- unit–確定如何解釋超時參數的TimeUnit
返回值:該方法返回布爾值true。由於隊列是無界的,因此此方法將永遠不會阻塞或返回false。
異常:當指定的元素為Null時,該函數將顯示NullPointerException。
以下程序說明了java.util.concurrent.LinkedTransferQueue.offer()的用法:
示例1:通過使用offer(E e,long timeout,TimeUnit unit)方法插入學生的姓名來創建LinkedTransferQueue,該方法的timeunit參數以秒為單位,timeout參數為5sec
// Java Program Demonstrate offer()
// method of LinkedTransferQueue
import java.util.concurrent.*;
class GFG {
public static void main(String[] args)
throws InterruptedException
{
// create object of LinkedTransferQueue
LinkedTransferQueue<Integer>
queue = new LinkedTransferQueue<Integer>();
// Add 5 elements to ArrayBlockingQueue having
// Timeout in seconds with value 5 secs in
// offer(Element e, long timeout, TimeUnit unit)
System.out.println("adding 15 "
+ queue.offer(15, 5, TimeUnit.SECONDS));
System.out.println("adding 25: "
+ queue.offer(25, 5, TimeUnit.SECONDS));
System.out.println("adding 35: "
+ queue.offer(35, 5, TimeUnit.SECONDS));
System.out.println("adding 45: "
+ queue.offer(45, 5, TimeUnit.SECONDS));
System.out.println("adding 55: "
+ queue.offer(55, 5, TimeUnit.SECONDS));
// print the elements of queue
System.out.println("list of numbers of queue: "
+ queue);
}
}
adding 15 true adding 25: true adding 35: true adding 45: true adding 55: true list of numbers of queue: [15, 25, 35, 45, 55]
示例2:顯示NullPointerException的程序。
// Java Program Demonstrate offer()
// method of LinkedTransferQueue
import java.util.concurrent.*;
class GFG {
public static void main(String[] args)
throws InterruptedException
{
// Initializing the queue
LinkedTransferQueue<Integer>
queue = new LinkedTransferQueue<Integer>();
// add elements to queue
try {
queue.offer(null, 5, TimeUnit.SECONDS);
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
Exception: java.lang.NullPointerException
offer(E e)
java.util.concurrent.LinkedTransferQueue類的offer(E e)方法是Java中的內置函數,如果隊列有空間,即Queue未滿,則將作為參數傳遞的元素e插入此LinkedTransferQueue的方法的尾部。如果隊列已滿,則應用offer()方法無效,因為LinkedTransferQueue將阻止要插入的元素。當對LinkedTransferQueue的加法操作成功時,offer()方法返回true;如果此隊列已滿,則方法返回false。此方法優於add()方法,因為在隊列已滿時add方法會引發錯誤,但在這種情況下offer()方法將返回false。
用法:
public boolean offer(E e)
參數:該函數接受單個參數,即要插入的元素。
返回值:成功插入後,該方法返回true。
異常:當指定的元素為Null時,該函數將顯示NullPointerException。
示例1:在隊列中添加字符串。
// Java Program Demonstrate offer()
// method of LinkedTransferQueue
import java.util.concurrent.*;
class GFG {
public static void main(String[] args)
{
// Initializing the queue
LinkedTransferQueue<String>
queue = new LinkedTransferQueue<String>();
// Adding elements to this queue
queue.offer("alex");
queue.offer("bob");
queue.offer("chuck");
queue.offer("drake");
queue.offer("eric");
// Printing the elements of the queue
System.out.print("Queue: ");
for (String i : queue)
System.out.print(i + " ");
}
}
Queue: alex bob chuck drake eric
示例2:顯示NullPointerException的程序。
// Java Program Demonstrate offer()
// method of LinkedTransferQueue
import java.util.concurrent.LinkedTransferQueue;
class GFG {
public static void main(String[] args)
throws InterruptedException
{
// Initializing the queue
LinkedTransferQueue<Integer>
queue = new LinkedTransferQueue<Integer>();
// add elements to queue
queue.offer(10);
queue.offer(20);
queue.offer(30);
try {
queue.offer(null);
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
Exception: java.lang.NullPointerException
參考: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html#offer(E)
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html#offer(E,%20long,%20java.util.concurrent.TimeUnit)
相關用法
- Java LinkedTransferQueue put()用法及代碼示例
- Java LinkedTransferQueue contains()用法及代碼示例
- Java LinkedTransferQueue take()用法及代碼示例
- Java LinkedTransferQueue add()用法及代碼示例
- Java PriorityQueue offer()用法及代碼示例
- Java Deque offer()用法及代碼示例
- Java LinkedBlockingDeque offer()用法及代碼示例
- Java PriorityBlockingQueue offer()用法及代碼示例
- Java ConcurrentLinkedQueue offer()用法及代碼示例
- Java Queue offer()用法及代碼示例
- Java ArrayDeque offer()用法及代碼示例
- Java ArrayBlockingQueue offer()用法及代碼示例
- Java LinkedTransferQueue remove()用法及代碼示例
- Java LinkedTransferQueue iterator()用法及代碼示例
注:本文由純淨天空篩選整理自rupesh_rao大神的英文原創作品 LinkedTransferQueue offer() method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。