Метод addLast() в Java LinkedList
addLast()Этот метод —LinkedListраспространённый метод, предоставляемый классом LinkedList в Java, используемый для добавления элементов в конец списка. Этот метод особенно полезен для реализации структур данных очереди (FIFO).
public void addLast(E e)
Параметры метода
| Параметр | Type | Описание |
|---|---|---|
| e | E | Элемент, который нужно добавить в конец связанного списка |
Возвращаемое значение
Этот метод не возвращает значение (voidтип void).
Особенности метода
- Временная сложность: O(1) - потому что
LinkedListОн хранит указатели на головной и хвостовой узлы, поэтому элементы можно добавлять напрямую в конец. - Не потокобезопасно: Этот метод не является потокобезопасным; при использовании в многопоточной среде требуется внешняя синхронизация.
- Допускает значения null: Можно добавлять
nullэлементы в связанный список - Ограничение ёмкости:
LinkedListОграничения ёмкости нет; элементы можно добавлять, пока не закончится память.
Пример использования
Базовое использование
Пример
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
// Создаём LinkedList
LinkedList<String> fruits = new LinkedList<>();
// Используйте метод addLast() для добавления элементов
fruits.addLast("Apple");
fruits.addLast("Banana");
fruits.addLast("Cherry");
// Вывести связный список
System.out.println(fruits); // Вывод: [Apple, Banana, Cherry]
}
}
public class LinkedListDemo {
public static void main(String[] args) {
// Создаём LinkedList
LinkedList<String> fruits = new LinkedList<>();
// Используйте метод addLast() для добавления элементов
fruits.addLast("Apple");
fruits.addLast("Banana");
fruits.addLast("Cherry");
// Вывести связный список
System.out.println(fruits); // Вывод: [Apple, Banana, Cherry]
}
}
Сравнение с методом add()
Пример
LinkedList<Integer> numbers = new LinkedList<>();
// addLast() и add() эквивалентны в LinkedList
numbers.add(1); // Добавить в конец
numbers.addLast(2); // Добавить в конец
System.out.println(numbers); // Вывод: [1, 2]
// addLast() и add() эквивалентны в LinkedList
numbers.add(1); // Добавить в конец
numbers.addLast(2); // Добавить в конец
System.out.println(numbers); // Вывод: [1, 2]
Исключения
addLast()Метод может выбрасывать следующие исключения:
- ClassCastException- Если класс указанного элемента не позволяет добавить его в этот список
- NullPointerException- Если список не допускает null-элементы и указанный элемент равен null
- IllegalArgumentException- Если некоторое свойство этого элемента не позволяет добавить его в этот список
Практические сценарии применения
- Реализация очереди:
addLast()Это можно использовать для реализации операции постановки в очередь. - Логирование: при записи событий в хронологическом порядке можно использовать этот метод.
- История: при реализации функциональности отмены/повтора связанный список можно использовать для хранения истории операций.
Пример
// Простой пример реализации очереди
LinkedList<String> queue = new LinkedList<>();
// Операция постановки в очередь
queue.addLast("Task1");
queue.addLast("Task2");
queue.addLast("Task3");
// Операция извлечения из очереди
String firstTask = queue.removeFirst();
System.out.println("Processing: " + firstTask);
LinkedList<String> queue = new LinkedList<>();
// Операция постановки в очередь
queue.addLast("Task1");
queue.addLast("Task2");
queue.addLast("Task3");
// Операция извлечения из очереди
String firstTask = queue.removeFirst();
System.out.println("Processing: " + firstTask);
Примечания
- Для частых операций произвольного доступа,
ArrayListможет бытьLinkedListболее эффективен, чем - В Java,
LinkedListimplementsDequeинтерфейс, поэтому вы также можете использоватьofferLast()метод для достижения аналогичной функциональности - Если связный список пуст,
addLast()добавленный элемент станет первым и единственным элементом связного списка.
Итог
LinkedListизaddLast()Метод addLast() — простой, но мощный инструмент для эффективного добавления элементов в конец связного списка. Понимание того, как работает этот метод, и сценариев его применения может помочь вам сделать правильный выбор структуры данных, когда вам нужно часто добавлять элементы в конец коллекции.
Java LinkedList