Реализация LinkedList на Java — пошаговая реализация с классом Node

Чтобы понять этот пример, нужно знать следующие темы:

  • LinkedList в Java

  • Дженерики в Java

Пример 1: Программа Java для реализации LinkedList

class LinkedList {

  // создаём объект класса Node
  // представляет голову связанного списка
  Node head;

  // статический вложенный класс
  static class Node {
    int value;

    // соединяем каждый узел со следующим
    Node next;

    Node(int d) {
      value = d;
      next = null;
    }
  }

  public static void main(String[] args) {

    // создаём объект LinkedList
    LinkedList linkedList = new LinkedList();

    // присваиваем значения каждому узлу связанного списка
    linkedList.head = new Node(1);
    Node second = new Node(2);
    Node third = new Node(3);

    // соединяем каждый узел связанного списка со следующим
    linkedList.head.next = second;
    second.next = third;

    // печатаем значения узлов
    System.out.print("LinkedList: ");
    while (linkedList.head != null) {
      System.out.print(linkedList.head.value + " ");
      linkedList.head = linkedList.head.next;
    }
  }
}

Вывод:

LinkedList: 1 2 3

В примере выше мы реализовали односвязный список в Java. Здесь связанный список состоит из 3 узлов.

Каждый узел состоит из value и next. Переменная value представляет значение узла, а next — ссылку на следующий узел.

Совет

Чтобы узнать о работе LinkedList, посетите Структура данных LinkedList.

Пример 2: Реализация LinkedList с помощью класса LinkedList

Java предоставляет встроенный класс LinkedList, который можно использовать для реализации связанного списка.

import java.util.LinkedList;

class Main {
  public static void main(String[] args){

    // создаём связанный список с помощью класса LinkedList
    LinkedList<String> animals = new LinkedList<>();

    // добавляем элементы в LinkedList
    animals.add("Dog");

    // добавляем элемент в начало связанного списка
    animals.addFirst("Cat");

    // добавляем элемент в конец связанного списка
    animals.addLast("Horse");
    System.out.println("LinkedList: " + animals);

    // получаем первый элемент
    System.out.println("First Element: " + animals.getFirst());

    // получаем последний элемент
    System.out.println("Last Element: " + animals.getLast());
    }
}

Вывод:

LinkedList: [Cat, Dog, Horse]
First Element: Cat
Last Element: Horse

В примере выше мы использовали класс LinkedList, чтобы реализовать связанный список в Java. Здесь мы использовали методы, предоставленные классом, чтобы добавлять элементы и получать к ним доступ из связанного списка.

Обратите внимание: мы использовали угловые скобки (<>) при создании связанного списка. Это означает, что связанный список — обобщённого типа.