Java学习进程8

发布时间:2026/9/20 7:45:20
Java学习进程8 Java学习进程8链表继上篇明确了动态数组具备动态扩容取值快等优势但存在添加删除数据速度较慢等缺陷链表的数据结构恰好弥补了这一短板。链表原理链表是不连续的线性存储结构依靠每个节点内部的引用指针将零散的节点串联起来。链表的特点上一个节点的指针域存档着下一个节点的地址example自定义动态数组 LinkList 完整实现代码packagecom.yw.oop0719;/** * author YAN * date 2026/7/19 19:45 * description *///关于链表publicclassLinkList{//链表的头节点privateNodehead;//链表的第一个节点privateintsize0;//在末尾添加数据publicvoidadd(intdata){//创建节点保存数据把新节点接入链表尾部NodenodenewNode(data);//判断链表是否存在if(headnull){//node就保存为头节点headnode;//size;}else{//链表存在数据//遍历到尾节点尾节点next为null//定义变量来记录当前节点位置Nodecurrhead;while(curr.next!null){//不是尾节点//curr标记后移currcurr.next;//curr为空就表示尾节点curr.nextnode;}size;}}//删除指定下标节点publicintremove(intindex){Nodecurrhead;intdeledata;//情况1删除头节点index 0if(index0){deledatahead.data;headhead.next;}else{//情况2删除中间、尾部节点先找到前驱节点index-1的位置for(inti0;iindex-1;i){currcurr.next;}//curr是前驱节点curr.next是待删除节点NodedeleNodecurr.next;deledatadeleNode.data;//跳过待删除节点完成删除curr.nextdeleNode.next;}size--;returndeledata;}//获取指定下标数据publicintget(intindex){//判断index是否合法//if (index 0 index size) {//遍历到index 位置Nodecurrhead;for(inti0;iindex;i){currcurr.next;}returncurr.data;}//}//长度publicintsize(){returnsize;}publicstaticvoidmain(String[]args){LinkListlinknewLinkList();link.add(1);link.add(2);link.add(3);for(inti0;ilink.size();i){System.out.println(link.get(i));}}}//定义链表的节点类classNode{publicintdata;//保存数据publicNodenext;//保存链表的下一个节点publicNode(intdata){this.datadata;}publicNode(){}}

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询