Связанный список Java
Связанный список Java
В предыдущей главе вы узнали о ArrayList
классе. Класс LinkedList
почти идентичен
ArrayList
:
Пример
// Import the LinkedList class
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
ArrayList против LinkedList
Класс LinkedList
— это коллекция, которая может содержать множество объектов одного типа, как и класс ArrayList
.
Класс LinkedList
имеет все те же методы, что и ArrayList
класс, потому что они оба реализуют List
интерфейс. Это означает, что вы можете добавлять элементы, изменять элементы, удалять элементы и очищать список таким же образом.
Однако, хотя ArrayList
класс и LinkedList
класс можно использовать одинаково, они строятся совершенно по-разному.
Как работает ArrayList
Внутри ArrayList
класса есть обычный массив. Когда элемент добавляется, он помещается в массив. Если массив недостаточно велик, создается новый массив большего размера для замены старого, а старый удаляется.
Как работает LinkedList
Магазин LinkedList
хранит свои предметы в «контейнерах». В списке есть ссылка на первый контейнер, и каждый контейнер имеет ссылку на следующий контейнер в списке. Чтобы добавить элемент в список, этот элемент помещается в новый контейнер, и этот контейнер связывается с одним из других контейнеров в списке.
Когда использовать
Используйте ArrayList
для хранения и доступа к данным, а LinkedList
также для управления данными.
Методы связанного списка
Во многих случаях метод ArrayList
более эффективен, так как обычно требуется доступ к случайным элементам в списке, но он LinkedList
предоставляет несколько методов для более эффективного выполнения определенных операций:
Method | Description | Try it |
---|---|---|
addFirst() | Adds an item to the beginning of the list. | |
addLast() | Add an item to the end of the list | |
removeFirst() | Remove an item from the beginning of the list. | |
removeLast() | Remove an item from the end of the list | |
getFirst() | Get the item at the beginning of the list | |
getLast() | Get the item at the end of the list |