Отличия LinkedList .echo () от .peek () - PullRequest
0 голосов
/ 24 января 2019

В оракуле Java документы: https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html:

.element() "Извлекает, но не удаляет заголовок (первый элемент) этого списка."

.peek() "Извлекает, но не удаляет заголовок (первый элемент) этого списка."

  1. Есть ли причина, по которой вы хотели бы использовать .element() вместо .peek()?
  2. Если ответ (1) «Нет», зачем классу два метода с одной и той же функцией?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Есть 4 метода.

  1. Peek
  2. Элемент
  3. Опрос
  4. Удалить

Поведение peek и element практически одинаково с разницей:

Если в очереди нет элементов, метод peek () возвращает null .

Метод element () ведет себя как peek (), поэтому он снова получает значение первого элемента, не удаляя его.

Однако, если список пуст, элемент () выдает NoSuchElementException.

Наконец, есть два других метода: poll и remove .

Метод poll () извлекает значение первого элемента очереди, удаляя его из очереди. Если список не содержит каких-либо элементов, он вернет значение null, но не выдает никаких исключений.

Метод remove () ведет себя как метод poll (), поэтому он удаляет первый элемент списка и, если список пуст, выдает исключение NoSuchElementException.

Ссылка: http://www.davismol.net/2014/04/04/java-ocpjp7-difference-between-element-peek-poll-and-remove-methods-of-the-queue-interface/

0 голосов
/ 24 января 2019

Поведение описано в документации для очереди. В основном элемент выдает исключение, если есть ошибка (думайте, пустой список), тогда как peek просто возвращает специальное значение (вероятно, ноль). https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html

...