2016-03-07 3 views
1

Покидает интерфейс очереди в Java hereВ чем разница между методами в интерфейсе Java Queue?

я запуталась определениями методов:

элемента() Извлекает, но не удаляет, главу этой очереди.

, как

PEEK() Извлекает, но не удаляет, глава этой очереди, или возвращает нуль, если эта очередь пуста.

Я могу видеть, что заглядывать возвращает нулевое значение, если очередь пуста, но и на самом деле определяются как

Броски: NoSuchElementException - если очередь пуста

То же самое относится и к remove() и peek();

Есть ли какие-либо цели за этим или это всего лишь проектная ловушка?

+0

Я предполагаю, что вы имели в виду _Same применяется к 'remove()' и ** 'poll()' ** _ – Codebender

+3

Ответ находится в документах - ['element'] (https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html#element--):" * Извлекает, но не удаляет головку этой очереди. ** Этот метод отличается от просмотра только тем, что он генерирует исключение, если эта очередь пуста **. * «' peek' ** не ** бросает исключение. – Maroun

ответ

3

Пояснит вещи с таблицей, которая должна ответить на ваш вопрос:

+---------+---------------------------+------------------------+ 
| method |   action   | throws when not found? | 
+---------+---------------------------+------------------------+ 
| peek | Retrieves, doesn't remove | NO      | 
| remove | Retrieves, removes  | YES     | 
| element | Retrieves, doesn't remove | YES     |     
+---------+---------------------------+------------------------+ 

Есть методы, которые возвращают null, если не найден ни один элемент, другие бросают исключение.

Это методы, которые извлекают и не удаляют, другие извлекают и удаляют.

+1

Да, это имеет смысл немного больше прямо сейчас: D – Adelin

+0

Хороший ответ, но более подробное объяснение есть в Javadoc для интерфейса Queue. См. Ссылку: https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html –

+0

@MichaelGantman уверен, OP уже знаком с документами. – Maroun

0

Объяснение приведено в java API для интерфейса Queue: here. В коротком элементе() исключается, если очередь пуста, и peek() возвращает специальное значение, указывающее, что очередь пуста

Смежные вопросы