Метод set() класса Java LinkedList
LinkedListявляется важным классом в Java Collections Framework, он реализуетListинтерфейс.set()метод — этоLinkedListочень полезный метод, предоставляемый классом и используемый для замены элемента в указанной позиции связного списка.
Проще говоря,set()метод позволяет вам:
- Обращаться к определённой позиции в связном списке по индексу
- Заменяет старый элемент в этой позиции новым элементом
- Возвращает старый элемент, который был заменён
Синтаксис метода
set()Полный синтаксис метода выглядит следующим образом:
Описание параметров:
index: позиция элемента, который нужно заменить (счёт с 0)element: новый элемент, который будет сохранён в указанной позиции
Возвращаемое значение:
- Возвращает старый элемент, который был заменён
Пример использования
Давайте разберём на полном примере кодаset()использование метода:
Пример
public class LinkedListSetExample {
public static void main(String[] args) {
// Создаём LinkedList
LinkedList<String> fruits = new LinkedList<>();
// Добавить элементы
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
fruits.add("Date");
System.out.println("Исходный LinkedList: " + fruits);
// Используйте метод set() для замены второго элемента
String replaced = fruits.set(1, "Blueberry");
System.out.println("Заменённый элемент: " + replaced);
System.out.println("Изменённый LinkedList: " + fruits);
}
}
Вывод:
原始链表: [Apple, Banana, Cherry, Date] 被替换的元素: Banana 修改后的链表: [Apple, Blueberry, Cherry, Date]
Примечания
Исключение выхода за границы индекса
Если указанный индекс выходит за пределы диапазона связного списка (index < 0 или index >= size()),set()метод выбросит исключениеIndexOutOfBoundsException。
Пример
fruits.set(4, "Инжир");
Соображения производительности
ПосколькуLinkedListреализован на основе связного списка,set()методу нужно пройти по связному списку, чтобы найти элемент в указанной позиции, следовательно:
- Средняя временная сложность — O(n)
- Для сценариев, требующих частого произвольного доступа,
ArrayListможет быть лучшим выбором
Значения null не допускаются
ЕслиLinkedListне допускает null-элементы (в зависимости от конкретной реализации), попытка установить значение null может выбросить исключениеNullPointerException。
Сравнение с другими методами
set() против add()
set(): Заменяет элемент в указанной позицииadd(): Вставляет новый элемент в указанную позицию, сдвигая исходный элемент назад
set() против get()
set(): Изменяет элемент в указанной позиции и возвращает старое значениеget(): Только извлекает элемент в указанной позиции, не изменяя связный список
Практические сценарии применения
set()Метод особенно полезен в следующих сценариях:
- Обновление определённых элементов в связном списке
- Замена записей истории при реализации функциональности отмены/повтора
- Изменение данных промежуточных шагов в алгоритмах
- Обновление состояний объектов в разработке игр
Итог
LinkedListизset()Этот метод — простой, но мощный инструмент, позволяющий разработчикам точно изменять определённые элементы в связном списке. Понимание того, как работает этот метод, и его ограничений поможет вам более эффективно использовать его в реальном программировании.LinkedListколлекции.
Java LinkedList