成为继阵列之后的认证专业,第二大最流行的数据结构是链表。链表是一种线性数据结构,由一系列节点组成,其中每个节点都包含一个值和指向链中下一个节点的指针。在本文中,让我们看看如何使用Java的内置Link
成为继阵列之后的认证专业
,第二大最流行的数据结构是链表。链表是一种线性数据结构,由一系列节点组成,其中每个节点都包含一个值和指向链中下一个节点的指针。在本文中,让我们看看如何使用Java的内置LinkedList类在Java中实现一个链表。下面列出的
是本文涉及的主题:
什么是链表?Java中的链表Linked List类LinkedList类的特点LinkedList类的声明构造函数LinkedList类如何实现?Java程序演示了LinkedList类程序将链表转换为数组程序将数组转换为链表的基本方法ArrayList vs LinkedList
什么是链表
链表是一个包含多个节点的线性数据结构,其中每个元素存储自己的数据和指向下一个元素位置的指针。链接列表中的最后一个链接指向空,表示链的结束。链表中的元素称为节点。第一个节点叫做头部。最后一个节点称为tail。
这里有一个简单的例子:想象一个链表,就像一个连接在一起的回形针链。您可以很容易地在顶部或底部添加另一个回形针。在中间插入一个甚至很快。你所要做的就是断开中间的链条,加上新的回形针,然后重新连接另一半。链表是类似的。
链表的类型
单链表(单向)
双链表(双向)
循环链表
现在,让我们看看如何在Java
Java中的
链表作为一种编程语言,通过类和对象等概念关注代码的可重用性。简单地说,类是对象的蓝图或模板。虽然您可以为链表实现构建自己的自定义类,但Java确实提供了一个方便的内置LinkedList类来实现Java中的链表。Java中的
LinkedList类在Java中的
,LinkedList类是list和Deque接口的双链表实现。它还实现所有可选的列表操作并允许所有元素(包括空值)。
LinkedList类的功能
在下面可以找到类LinkedList最重要的属性:
实现Queue和Deque接口。因此,它也可以用作队列、Deque或堆栈,它可以包含所有元素,包括重复元素和空的LinkedList维护元素的插入顺序Java LinkedList类不同步,这意味着在多线程环境中,您必须在外部同步对链接列表的并发修改,我们可以使用集合.synchronizedList(new LinkedList())获取同步链表的LinkedList类没有实现RandomAccess接口,因此,只能使用ListIterator按顺序访问元素列表
LinkedList类声明
LinkedList的迭代元素是具有以下声明的泛型类:
public Class LinkedList;扩展抽象序列表;进口java.util.LinkedList;公共类链接列表{公共静态void main(字符串args[]){/*链表声明*//*add(字符串项)用于添加*链接列表的项*/一_列表.add(“巨蟒”);一_列表.add(“Scala”);系统输出打印(“链表内容:” l_List); /*在指定位置添加项*/一_列表.add(3,“Kotlin”);系统输出打印(“编辑后的列表内容:” l_list);/*添加第一项和最后一项*/一_list.addFirst列表(“第一道菜”);系统输出打印(“添加后的清单内容:” l清单); /*获取并设置列表中的项*/对象firstvar=l_列表.get(0);系统输出打印(“第一项:” firstvar);系统输出打印(“更新第一项后的清单内容:” l清单); /*从一个位置移走*/一_列表.删除(1) (二);系统输出打印(“删除第2和第3位项目后的链接列表” l_列表);/*删除第一项和最后一项*/一_list.removeLast列表();系统输出打印(“删除第一项和最后一项后的最终内容:” l_list); /*迭代链表*/系统输出打印(“使用迭代器显示的列表:”);系统输出打印(下一个itrator());}}}编辑后的内容={Java,Python,JavaScript,Kotlin,Scala,Swift}添加后的内容={第一个课程,Java,Python,JavaScript,Kotlin,Scala,Swift,最后一个课程}第一项={第一道菜}删除第二和第三个位置的项目后的内容={Java9,Python,Kotlin,Scala,Swift,Last Course}删除第一个和最后一个项后的最终内容={Python,Kotlin,Scala,Swift}使用迭代器显示的列表=蟒蛇科特林斯威夫特进口java.util.Arrays数组;进口java.util.List列表;公共类linkedlisttoarray{{ListcourseList=新建链接列表();课程列表添加(“巨蟒”);课程列表添加(“Hadoop”);内部大小=课程表尺寸();系统输出打印(“链表大小=” Size); 数字=课程表(数字);系统输出打印(数组.toString(数字);}}
输出:
链表大小=5[Java、Python、DevOps、Hadoop、AWS]在上面的例子中,我使用了Java的LinkedList类的两个重要方法。下面列出了这些方法及其功能:
size():此方法返回此列表中的元素数。toArray():此方法返回一个数组,该数组按正确的顺序包含此列表中的所有元素示例2:一个Java程序,用于将数组转换为链接列表
。下面的示例演示如何将数组转换为链接列表
包MyPackage;进口java.util.LinkedList;公共类ArrayToLinkedList{公共静态void main(字符串[]参数){String[]courses={“Java”,“PHP”,“Hadoop”,“DevOps”,“Python”};for(字符串s:课程){课程列表.add(s) (二);系统输出打印(“热门课程列表为:” coursesList);}}