📜  Java程序实现LinkedList(1)

📅  最后修改于: 2023-12-03 15:02:06.009000             🧑  作者: Mango

Java程序实现LinkedList

LinkedList是Java中常见的数据结构之一,它常用于构建链表。链表是一种数据结构,它由许多节点组成,每个节点包含指向下一个节点的引用。

在本文中,我们将介绍如何使用Java编写LinkedList的实现。

定义LinkedList类

LinkedList可以存储任何类型的对象,因此我们可以使用泛型创建一个通用的LinkedList类。下面是一个简单的LinkedList定义:

public class LinkedList<E> {
    private Node<E> head;
    private int size;

    private static class Node<E> {
        E item;
        Node<E> next;

        Node(E item, Node<E> next) {
            this.item = item;
            this.next = next;
        }
    }

    // 构造函数
    public LinkedList() {
        head = null;
        size = 0;
    }

    // 添加元素
    public void add(E item) {
        head = new Node<>(item, head);
        size++;
    }

    // 获取元素
    public E get(int index) {
        if (index < 0 || index >= size) {
            throw new IndexOutOfBoundsException();
        }
        Node<E> current = head;
        for (int i = 0; i < index; i++) {
            current = current.next;
        }
        return current.item;
    }

    // 返回链表大小
    public int size() {
        return size;
    }

    // 删除元素
    public E remove() {
        if (head == null) {
            throw new NoSuchElementException();
        }
        E item = head.item;
        head = head.next;
        size--;
        return item;
    }
}

在上面的代码中,我们定义了一个Node类来表示链表中的节点,它包含一个泛型类型的item字段和一个指向下一个节点的next字段。LinkedList类包括head和size两个字段,head字段是链表的头节点,size字段存储链表的大小。我们还在LinkedList类中定义了一些方法来添加、获取和删除元素,以及返回链表的大小。

测试

为了测试我们的LinkedList实现,我们可以创建一个简单的测试类,如下所示:

public class LinkedListTest {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.size());
        System.out.println(list.remove());
        System.out.println(list.size());
        System.out.println(list.remove());
        System.out.println(list.size());
    }
}

这个测试类创建了一个字符串类型的LinkedList对象,并向其中添加了两个元素。我们然后对链表进行一些操作,如获取、删除元素以及返回链表的大小,并将它们打印到控制台中。

结论

在本文中,我们介绍了如何使用Java编写LinkedList的实现。LinkedList是一种十分常见的数据结构,它可以帮助我们轻松地构建链表,并在其中存储任何类型的对象。