Java 中的通用链表10 Sept 2024 | 5 分钟阅读 在计算机科学中,链表是一种常见的数据结构,常用于存储和管理数据集合。链表由节点组成,每个节点包含一个值以及指向列表中下一个节点的连接。链表有多种不同类型,包括单向链表、双向链表和循环链表。本文将介绍如何在 Java 中实现泛型链表。 泛型链表是一种可以存储任何类型数据的链表。这在 Java 中通过利用泛型来实现。Java 5 中添加了泛型,以提供类型安全性并消除强制类型转换。我们可以通过泛型在编译时声明一个类可以处理的数据类型。 为了在 Java 中构建泛型链表,我们首先需要创建一个对应链表节点的 Node 类。Node 类将包含两个实例变量:一个用于存储数据,另一个用于存储指向列表中下一个节点的引用。 上面代码中定义了一个泛型为 T 的 Node 类。该类包含两个实例变量:next 和 data,它们分别存储指向列表中下一个节点的引用和类型为 T 的数据。构造函数接收一个类型为 T 的参数,并用给定的值初始化 data 变量,然后将 next 变量设置为 null。 接下来,需要在名为 LinkedList 的类中定义操作链表的逻辑。LinkedList 类将只有一个实例变量,用于存储列表的头节点,即指向列表中第一个节点的引用。 在上面的代码中,我们创建了一个名为 add 的方法,该方法向列表末尾添加一个新节点,并接受一个类型为 T 的参数。该方法首先创建一个具有参数值的新节点,然后检查列表是否为空。如果列表为空,则将新节点设置为头节点。如果列表包含任何元素,则该方法会遍历列表直到找到最后一个节点,然后将最后一个节点的 next 引用设置为新节点。 在上面的代码中,我们创建了一个名为 add 的方法,该方法向列表末尾添加一个新节点,并接受一个类型为 T 的参数。该方法首先创建一个具有参数值的新节点,然后检查列表是否为空。如果列表为空,则将新节点设置为头节点。如果列表包含任何元素,则该方法会遍历列表直到找到最后一个节点,然后将最后一个节点的 next 引用设置为新节点。 接下来,我们需要一个方法来根据数据值从列表中删除节点。 上面代码中的 remove 方法接受一个类型为 T 的参数,并删除列表中第一个具有指定数据值的节点。该方法首先检查列表是否为空,如果为空则返回 true。如果头节点包含指定的数据值,则函数结束并将头节点设置为下一个节点。当在头节点中找不到请求的数据值时,该过程会遍历列表,直到找到包含请求数据值的节点或到达列表末尾。如果通过更新前一个节点的 next 引用到下一个节点找到了具有指定数据值的节点,则该过程会删除该节点。 最后,我们需要一个方法来打印链表的内容。 上面代码中定义了一个名为 print 的方法,它会输出链表中每个节点的数据。该方法首先建立一个指向列表头节点的引用,然后遍历列表,输出与每个节点相关联的数据,直到到达列表末尾。 现在我们已经在 Java 中提供了泛型链表的基本功能,可以使用它来存储和管理任何类型数据的集合。要使用泛型链表,请遵循以下示例: 在上面的代码中,创建了一个新的 String 类型链表,向其中添加了五个字符串,打印了它的内容,然后从列表中删除了字符串“how”,并再次打印了列表的内容。 这是 Java 中泛型链表的完整代码: LinkedListExample.java 输出 hello world how are you hello world are you 在上面的代码中,创建了一个新的 String 类型链表,向其中添加了五个字符串,打印了它的内容,然后从列表中删除了字符串“how”,并再次打印了列表的内容。如您所见,结果显示了链表的初始内容以及删除字符串“how”后的内容。 总之,泛型链表是一种强大的数据结构,可以存储和管理任何类型数据的集合。通过使用泛型,我们可以在 Java 中创建一个类型安全的泛型链表,而无需进行类型转换。泛型链表在 Java 中易于实现,并且具有广泛的应用。 下一主题Java 泛型编程示例 |
? Java 中的 main() 函数是任何独立应用程序的起点。默认情况下,"main" 线程是一个非守护线程,负责执行它。这意味着,在 main() 线程和所有非守护线程执行完毕之前,Java...
阅读 4 分钟
在计算机编程中,队列是一种基本的数据结构,它以线性顺序存储项目,并遵循“先进先出”(FIFO)原则。这意味着第一个被移除的元素将是第一个被添加的元素。例如工作调度、事件管理……
阅读 8 分钟
Java 中的数据处理和格式化可以通过 SimpleDateFormat 和 Gregorian Calendar 等类来完成。日期和时间字段操作方法在 Gregorian Calendar 类中可用,该类是 Java.util 包的组成部分。但是,由于它需要生成日历实例和修改...
阅读 2 分钟
在本节中,我们将了解什么是四面体数,并创建 Java 程序来查找四面体数。四面体数程序经常在 Java 编码面试和学术界中出现。四面体数 如果一个数可以表示为...,则该数被称为四面体数。
阅读 3 分钟
菱形语法,有时称为菱形运算符,它作为一项新功能被添加到 Java 7。菱形运算符使得在使用泛型构建对象时更加容易。通过允许隐式重复的参数类型规范,它在某种程度上可以避免未经检查的警告...
阅读 4 分钟
在本节中,我们将讨论什么是费马数,并创建 Java 程序来检查给定数字是否是费马数。费马数程序经常在 Java 编码面试和学术界中出现。费马数 由 Pierre de...首次研究
阅读 3 分钟
? Java 如此受欢迎的一个重要原因是其跨平台兼容性和内置安全性。Java 程序可以在安装了 Java 运行时环境 (JRE) 的任何机器上运行。程序可以在各种计算机上运行。Java 被许多银行、制造商、保险公司、公用事业公司和零售商使用……
阅读 6 分钟
该问题的主要目标是确定不大于特定数字 n 的正整数的数量,这些正整数具有所有不重复的数字,这意味着数字在数字中最多出现一次。与 11345 不同,后者不是唯一数字,因为...
阅读 16 分钟
? Java 是一种通用且广泛使用的编程语言,多年来以其健壮性而闻名。健壮性是指编程语言优雅处理错误、避免系统崩溃以及确保软件应用程序可靠性的能力。在本节中,我们将探讨关键...
阅读 4 分钟
在 Java 编程领域,线程在实现任务并发执行方面起着至关重要的作用。线程是在单个进程内可以并发运行的轻量级子进程。Java 提供两种类型的线程:用户线程和守护线程。每种类型都有其独特的作用...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India