Разница между методами add() и offer() в Queue в Java

Опубликовано: 21 Февраля, 2023

Add() и Offer() — это методы, используемые для добавления элементов в очередь. Но у обоих есть своя основная функция, и они по-разному относятся к элементам.

метод add() в Java:

Он вставляет указанный элемент в конец очереди, если есть место, возвращает true в случае успеха и генерирует исключение IllegalStateException , если в данный момент свободного места нет. Этот метод возвращает логическое значение, отражающее успешность операции. Если элемент был добавлен, он возвращает true, иначе возвращает false.

Исключения: этот метод создает 5 исключений, перечисленных ниже:

  • UnsupportedOperationException: если операция добавления не поддерживается этой коллекцией
  • ClassCastException: если класс указанного элемента не позволяет добавить его в эту коллекцию
  • NullPointerException: если указанный элемент имеет значение null и эта коллекция не допускает нулевые элементы.
  • IllegalArgumentException: если какое-то свойство элемента препятствует его добавлению в эту коллекцию
  • IllegalStateException: если элемент не может быть добавлен в данный момент из-за ограничений на вставку

Ниже приведена реализация метода add() в java:

Если элемент не может быть добавлен в настоящее время из-за ограничений на вставку:

Output:
Exception in thread "main" java.lang.IllegalStateException
    at java.base/java.util.ArrayList$Itr.remove(ArrayList.java:1010)
    at GFG.main(GFG.java:13)

Метод Offer() в Java:

Он вставляет указанный элемент в эту очередь, если это возможно сделать немедленно, не нарушая ограничений емкости. При использовании очереди с ограниченной емкостью этот метод обычно предпочтительнее, чем add(E) , который может не вставить элемент только из-за исключения.

Параметры: этот метод принимает обязательный параметр e , который представляет собой элемент, который нужно вставить в очередь.

Возвращает: этот метод возвращает true при успешной вставке, иначе он возвращает false.

Исключения: функция выдает три исключения, которые описаны ниже:

  • ClassCastException : когда класс вводимого элемента не позволяет добавить его в этот контейнер.
  • IllegalArgumentException : когда какое-то свойство элемента препятствует его добавлению в очередь.
  • NullPointerException : когда вставляемый элемент передается как нулевой, а интерфейс очереди не допускает нулевых элементов.

Ниже приведена реализация метода offer() в java:

Разница между методом add() и offer() в java

Сл. Нет. добавлять() предложение()
1 add() вызовет исключение IllegalStateException, если в настоящее время в очереди нет свободного места, в противном случае метод add вернет значение true. Метод offer() вернет false, если элемент не может быть вставлен из-за ограничений емкости.
2 Метод add() взят из фреймворка Collections. Метод offer() поступает из очереди.
3 Метод add() всегда возвращает true. Метод offer() всегда возвращает false.
4 Метод add() выдает исключение, когда добавление в очередь невозможно. Метод offer() возвращает значение true или false, если добавление выполняется в очереди.