методы Java LinkedList getFirst () и element () - PullRequest
0 голосов
/ 14 марта 2019

Таким образом, я вижу, что из предыдущих ответов в stackoverflow есть разница между getFirst и peekFirst, поскольку peekFirst не сгенерирует exception, если LinkedList пуст.

Но в чем разница между getFirst и element?

getFirst () Возвращает первый элемент в этом списке.

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

Оба выбросят NoSuchElementException, если пусто.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 14 марта 2019

element находится в интерфейсе Queue, а getFirst - нет.Но (как отмечено в другом месте) поведение такое же.

2 голосов
/ 14 марта 2019

Они эквивалентны, как указано в Deque документах.

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

Этот метод эквивалентен getFirst ().

https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html#element()

1 голос
/ 14 марта 2019

Нет никакой разницы, реализация element равна

public E element() {
    return getFirst();
}

Javadoc даже заявляет

Этот метод эквивалентен {@link #getFirst ()}

1 голос
/ 14 марта 2019

Исходный код для LinkedList говорит сам за себя:

public E element() {
    return getFirst();
}

Метод element() просто вызывает getFirst(). Таким образом, в случае реализации LinkedList List оба метода фактически выполняют одно и то же.

Примечание: другая реализация интерфейса Deque, ArrayDeque, также имеет реализацию element(), которая просто вызывает getFirst().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...