Java中Queue的add()和offer()方法的區別?
Java中的佇列是一種線性資料結構,具有多種功能。佇列有兩個端點,它遵循先進先出 (FIFO) 原則來插入和刪除其元素。在本教程中,我們將瞭解Java佇列的兩個重要功能:add() 和 offer()。
什麼是佇列?
Java中的佇列是一個擴充套件了util和collection包的介面。元素從後端插入,從前端移除。Java中的佇列可以使用連結串列、Deque和優先佇列類來實現。優先佇列是普通佇列的擴充套件形式,每個元素都有一個優先順序。
佇列的add()方法
此方法用於將元素插入佇列。它在佇列的末尾新增定義的元素(作為引數傳遞的元素),只有當定義的元素成功新增到末尾時才返回true。如果元素沒有新增到佇列的末尾,add()方法將丟擲異常。
使用此方法,我們可以向佇列新增整數和字串值。
例如:add(3) 將在佇列末尾插入 3。
add()方法總是接受一些引數值。您不能向其傳遞空值,因為佇列不接受空值,在這種情況下,它將丟擲異常。
add()方法中的異常型別
IllegalStateException − 當佇列達到其最大容量時,將引發此Java異常。
NullPointerException − 當嘗試透過add()方法輸入空值時,因為佇列不接受空值。
示例
以下程式演示如何在Java中實現佇列的add()方法。
import java.util.*; // importing util package with all its features public class Main { public static void main(String[] args) { Queue<Integer> q = new LinkedList<>(); // queue declaration q.add(5); //adding elements to the queue q.add(6); q.add(4); q.add(1); q.add(8); System.out.println("Queue is: " + q); } }
輸出
Queue is: [5, 6, 4, 1, 8]
佇列中的offer()方法
此方法用於將元素插入佇列,元素可以是整數或字串資料型別。它根據佇列的容量插入指定的元素。如果無法將特定元素插入佇列,它不會丟擲任何異常。
在Java佇列的後端成功插入元素後,它返回True。如果佇列已滿,offer()方法將返回false。
例如
offer(3) : this will insert 3 into the queue offer(“Java”) : this will insert Java into the queue
示例
以下程式演示如何在Java中實現offer()。
import java.util.*; // importing util package with all its features public class Main { public static void main(String[] args) { Queue<String> q = new LinkedList<>(); // queue declaration q.offer("Java"); //inserting elements to the queue q.offer("is"); q.offer("Good"); System.out.println("Queue is " + q); } }
輸出
Queue is [Java, is, Good]
add()和offer()方法的區別
序號 |
add()函式 |
offer()方法 |
---|---|---|
1 |
當嘗試向已滿佇列插入元素時,add()函式會丟擲IllegalState異常。 |
它不會丟擲任何異常,但在佇列已滿或達到最大大小時返回false。 |
2 |
成功插入佇列元素後,add()方法返回true。它不返回False |
成功插入元素後,offer()方法返回True,插入佇列元素失敗時返回False。 |
3 |
它屬於Collection框架。 |
它是一個佇列方法。 |
結論
佇列中add()和offer()方法的唯一區別在於:如果add()超過了佇列的限制,它會丟擲異常。而offer()方法不會丟擲任何異常,它在成功插入元素時返回true,當由於佇列達到其最大容量而無法將元素插入佇列時返回False。