Queue
реализация в Java имеет два метода для удаления элемента, Каждый remove()
который выдает исключение, и другой poll()
который возвращается null
для пустой очереди. У меня есть два сомнения:
Queue
имеет другая реализация для удаления элемента? Абстрактный класс AbstractQueue
реализует Queue
и определите метод удаления.
Вы можете взглянуть на исходный код:
public E remove() {
E x = poll();
if (x != null)
return x;
else
throw new NoSuchElementException();
}
Итак, как видите, метод remove ()
использует метод poll ()
.
Вы можете использовать тот, который вам больше нравится.
Кэширование.
Есть и другие более глубокие преимущества REST, которые вращаются вокруг эволюционной способности посредством свободной связи и гипертекста, но механизмы кэширования являются основной причиной, по которой вы должны заботиться о RESTful HTTP.
-121--673918-Используйте функцию not с функцией contains.
Пример: not (содержит ('XML', 'XM'))
Результат: false
-121--1886410-
Когда вы знаете, как реагировать прямо сейчас и/или ожидать, что элементы будут отсутствовать, используйте опрос.
В противном случае используйте remove.
В некоторых ситуациях ожидается, что очередь будет пустой, и в этих случаях уместно иметь метод, который не бросает исключение. В других ситуациях предполагается, что очередь будет пустой, и в этих случаях наличие метода, который не бросает исключение, уместно.
Бросок исключений влечет за собой штраф за исполнение, и если вы ожидаете, что очередь время от времени будет пустой, то вам не нужно будет обрабатывать очередь - пустоту, как ловлю исключения - это и дорого, и трудно читается.
В противоположном случае, когда вы не ожидаете, что очередь когда-либо будет пустой, это признак программной ошибки или какого-то другого исключительного обстоятельства, и вы не хотите писать уродливый код проверки состояния ошибки (например, проверка на ноль), потому что в этом случае это будет менее читабельно, чем поймать исключение (что вы можете сделать в другой области видимости).
Иногда нужно вернуть нулевое значение для пустой очереди, а иногда - рассматривать пустую очередь как случай исключения.
Эти два метода по-разному используются в классических дискуссиях о структуре очереди. Я использую функцию poll() в основном для извлечения элементов, и remove() в основном, если мне нужно изменить очередь вне нормального цикла.