Java LinkedList

Оновлено: 22.05.2023

Java LinkedList

У попередній главі ви дізналися про клас 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 має всередині себе звичайний масив. Коли додається елемент, він поміщається в масив. Якщо масив недостатньо великий, створюється новий, більший масив, який замінює старий, а старий видаляється.

LinkedList зберігає свої елементи у "контейнерах". Список має посилання на перший контейнер, а кожен контейнер має посилання на наступний контейнер у списку. Щоб додати елемент до списку, елемент поміщається в новий контейнер, і цей контейнер пов'язується з одним з інших контейнерів у списку.

Коли використовувати Використовуйте ArrayList для зберігання та доступу до даних, а LinkedList - для маніпулювання даними.

Методи LinkedList

У багатьох випадках ArrayList є більш ефективним, оскільки часто потрібен доступ до випадкових елементів у списку, але LinkedList надає кілька методів для більш ефективного виконання певних операцій:

Method Description Try it addFirst() Adds an item to the beginning of the list. Try it » addLast() Add an item to the end of the list Try it » removeFirst() Remove an item from the beginning of the list. Try it » removeLast() Remove an item from the end of the list Try it » getFirst() Get the item at the beginning of the list Try it » getLast() Get the item at the end of the list Try it »