Метод getLast() в Java LinkedList

Java LinkedList Java LinkedList


getLast()— это метод в JavaLinkedListпредоставляемый классом, используется для получения последнего элемента в связанном списке. Этот метод принадлежитjava.util.LinkedListбиблиотеке классов, и является одним из часто используемых методов для работы со структурами данных связанного списка.

Определение метода

public E getLast()
  • Возвращаемый тип: обобщённый E (возвращает последний элемент в связанном списке)
  • Выбрасываемое исключение: если связанный список пуст, выбрасываетNoSuchElementException

Сценарии использования

Когда вам нужно:

  1. Проверить элемент в конце списка, не удаляя его
  2. Реализовать операцию peek для очереди (просмотреть, но не удалять хвостовой элемент)
  3. В алгоритмах, требующих частого доступа к элементам в хвосте связного списка

Пример базового использования

Пример

import java.util.LinkedList;

public class GetLastExample {
    public static void main(String[] args) {
        // Создаём LinkedList
        LinkedList<String> fruits = new LinkedList<>();
       
        // Добавить элементы
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
       
        // Используйте getLast() для получения последнего элемента
        String lastFruit = fruits.getLast();
        System.out.println("Последний фрукт: " + lastFruit);
    }
}

Вывод:

最后一个水果是: Cherry

Важные замечания

1. Обработка пустого связного списка

Пример

LinkedList<Integer> emptyList = new LinkedList<>();
// Эта строка вызовет NoSuchElementException
int last = emptyList.getLast();

Безопасное использование:

Пример

if (!emptyList.isEmpty()) {
    int last = emptyList.getLast();
} else {
    System.out.println("Связный список пуст!");
}

2. Отличие от peekLast()

  • getLast(): выбрасывает исключение, если связный список пуст
  • peekLast(): возвращает null, если связный список пуст

Соображения производительности

LinkedListявляется реализацией двусвязного списка,getLast()временная сложность метода — O(1), потому что он напрямую обращается к хвостовому узлу связного списка.


Пример практического применения

Реализация простой функции истории

Пример

LinkedList<String> history = new LinkedList<>();

// Добавить историю просмотров
history.add("Главная");
history.add("Страница товара");
history.add("Корзина");

// Получить последнюю посещённую страницу
String lastVisited = history.getLast();
System.out.println("Страница, которую вы последний раз посещали: " + lastVisited);

ЧАВО

Вопрос 1: В чём разница между getLast() и getFirst()?

  • getLast()Получить последний элемент связного списка
  • getFirst()Получить первый элемент связного списка

Вопрос 2: Зачем нужен отдельный метод getLast()?

Потому чтоLinkedListimplementsDequeинтерфейс, и ему нужно эффективно поддерживать операции с обоих концов.

Вопрос 3: Как избежать исключения при вызове getLast()?

  1. Сначала проверьте, пуст ли связный список:list.isEmpty()
  2. ИспользуйтеpeekLast()метод вместо этого

Итог

getLast()Метод являетсяLinkedListпростой, но практичный метод в классе, который может помочь разработчикам быстро получить доступ к элементу в конце связного списка. Понимание поведения и возможных исключений этого метода очень важно для написания надёжного кода. В реальной разработке выбирайте в соответствии с конкретными потребностямиgetLast()илиpeekLast()может лучше обрабатывать граничные случаи.

Java LinkedList Java LinkedList

Другие расширения