首頁 >Java >java教程 >在Java中,add()方法和offer()方法在佇列中有什麼區別?

在Java中,add()方法和offer()方法在佇列中有什麼區別?

PHPz
PHPz轉載
2023-08-27 14:25:061106瀏覽

在Java中,add()方法和offer()方法在佇列中有什麼區別?

Java中的佇列是一種線性資料結構,具有多種功能。佇列有兩個端點,它遵循先進先出(FIFO)原則插入和刪除其元素。在本教程中,我們將了解 Java 中佇列的兩個重要函數,它們是 add() 和 Offer()。

什麼是隊列?

java中的佇列是一個擴充了util和collection套件的介面。元素在後端插入並從前端移除。 java中的佇列可以使用鍊錶、DeQueue、優先權佇列等類別來實作。優先權佇列是普通佇列的擴充形式,每個元素都有一個優先權。

佇列的add()方法

此方法用於向佇列中插入元素。它將定義的元素(作為參數傳遞的元素)添加到隊列的末尾,並且僅當定義的元素成功添加到末尾時才傳回true。如果元素沒有加入到佇列末尾,add() 方法會拋出異常。

使用此方法,我們可以將整數和字串值新增到佇列中。

例如:add(3) 這將在佇列末尾插入 3。

add() 方法總是會採用一些參數值。您無法向其傳遞 null 值,因為 Queue 不接受 Null 值,在這種情況下,它將引發異常。

add()方法中的例外類型

  • IllegalStateException - 當佇列達到最大容量時,會出現此 java 例外狀況。

  • NullPointerException - 當嘗試透過 add() 方法輸入 null 值時,因為佇列不接受 null 值。

範例

下面的程式展示如何在Java中實作Queue中的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() 方法之間的差異

S.No

#add() 函數

#offer() 方法

1

當您嘗試在已滿佇列中插入元素時,add() 函數會引發 IllegalState 異常。

當佇列已滿或達到最大大小時,它不會拋出任何異常,但會傳回 false。

2

成功插入佇列元素後,add() 方法傳回 true。它不會回傳 False

offer() 方法在成功插入元素時傳回 True,在插入 Queue 元素失敗時傳回 False。

3

屬於Collection框架。

這是一個隊列方法。

結論

Queue 中的 add() 和 Offer() 方法之間的唯一區別是:如果 add() 超出了佇列的限制,則會拋出例外。雖然 Offer() 方法不會拋出任何異常,但它在成功插入元素時傳回 true,而在因佇列達到最高容量而導致元素無法插入佇列時傳回 False。

以上是在Java中,add()方法和offer()方法在佇列中有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多