Java 中的链表数组

Rashmi Patidar 2023年10月12日
  1. 在 Java 中使用传统数组演示链表数组
  2. 使用 Java 中的构造函数演示链表数组
Java 中的链表数组

LinkedList 是按定义顺序存储元素的顺序和线性数据结构。数据结构是 Collection 接口的一部分,存在于 java.util 包中。

链表也有元素存储在 node 部分。每个节点都有一个 data 部分用于元素存储,还有一个 pointer 用于保存下一个节点的地址。列表中的元素不存在于连续的内存位置。

在 Java 中使用传统数组演示链表数组

下面是使用循环创建链表数组的代码块。

import java.util.LinkedList;

public class Main {
  public static void main(String[] args) {
    LinkedList[] list = new LinkedList[5];
    for (int i = 0; i < 5; i++) {
      if (list[i] == null) {
        list[i] = new LinkedList();
        int temp = i;
        for (int j = 0; j < temp + 1; j++) {
          list[i].add(j);
        }
      }
      System.out.print(list[i]);
    }
  }
}

在上面的块中,new LinkedList[5] 语句创建了一个链表。new 关键字调用类链表的公共构造函数。值 5 显示了数组的大小,因此我们创建了一个包含 5 个链表的数组。

在列表变量上,循环运行以在每个节点上实例化一个新的链表。因此,在整数值小于 5 的条件下应用 for 循环开始运行。在内部,它检查节点中的值是否为的条件;否则,将实例化一个新的 Linked List 节点。

同样,使用 for 循环来填充列表中的元素。add 方法用于将元素添加到列表的末尾。该方法来自 LinkedList 类并返回 boolean 值。如果 add 函数成功完成,它返回 true,否则返回 false

类似地,迭代继续,每个节点的值都被链表填充。循环内部也会打印相同的内容,以检查节点中存在的元素。

输出:

[0][0, 1][0, 1, 2][0, 1, 2, 3][0, 1, 2, 3, 4]

使用 Java 中的构造函数演示链表数组

下面是使用 Java 8 特性和函数创建链表数组的代码块。

import java.util.ArrayList;
import java.util.LinkedList;

public class main {
  public static void main(String[] args) {
    LinkedList list1 = new LinkedList<String>();
    list1.add("l1_value1");
    list1.add("l1_value2");

    LinkedList list2 = new LinkedList();
    list2.add("l2_value1");
    list2.add("l2_value2");

    LinkedList list3 = new LinkedList();
    list3.add("l3_value1");
    list3.add("l3_value2");

    ArrayList<LinkedList> arrayList = new ArrayList<LinkedList>();
    arrayList.add(list1);
    arrayList.add(list2);
    arrayList.add(list1);
    arrayList.forEach(System.out::println);
    System.out.println("Classname: " + arrayList.get(0).getClass());
  }
}

在上面的代码块中,main 方法保存了代码执行的实际逻辑。

首先,使用 new 关键字创建一个链表。关键字调用 LinkedList 类的公共构造函数。字符串值被插入到列表中。同样,创建另外两个列表。

最后,一个数组列表被实例化。形成的列表变量被添加到数组列表实例中。列表实例的迭代使用 forEach 函数进行。此外,添加了带有方法引用运算符 ::print 语句以显示数组列表中存在的实例类型的名称。

上面程序的输出如下所示。

[l1_value1, l1_value2][l2_value1, l2_value2][l1_value1, l1_value2] Classname
    : class java.util.LinkedList
作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java Linked List

相关文章 - Java Array