📅  最后修改于: 2023-12-03 15:02:06.009000             🧑  作者: Mango
LinkedList是Java中常见的数据结构之一,它常用于构建链表。链表是一种数据结构,它由许多节点组成,每个节点包含指向下一个节点的引用。
在本文中,我们将介绍如何使用Java编写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是一种十分常见的数据结构,它可以帮助我们轻松地构建链表,并在其中存储任何类型的对象。