Разница между методами add() и offer() в Queue в Java
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, если добавление выполняется в очереди. |