欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > LinkedList添加和删除方法的源码分析超详细

LinkedList添加和删除方法的源码分析超详细

2024/10/25 20:28:01 来源:https://blog.csdn.net/ppp666777/article/details/141499595  浏览:    关键词:LinkedList添加和删除方法的源码分析超详细

我们基于下面这段代码进行分析

进入add方法后调用的是linkLast方法

 

这是add方法真正的底层逻辑,首先将last值赋给l节点,此时的l为null,然后再创建新节点的时候将l作为前向指针传入,将节点中的next指针也赋值为null,之后让last节点指向新节点。然后进行if判断如果l为null就将first也指向新节点。这是第一次添加的过程

下面我们看第二次添加的过程 ,最终还是执行linkLast方法,只不过此时的last指向第一个节点,所以l也指向第一个节点,然后创建一个新节点将l传入,所以新节点中的prev指向第一个节点,接着将last的指向改为新节点。由于此时的l不为null,所以进入else,将首节点中的next执向新节点接着我们看一下它的remove方法,默认删除的首元素

首先将first的引用保存起来,真正执行删除方法的是unlinkFirst().

 首先将节点中的值和next指针保存起来,接着将他们置为null,通过GC,然后将头节点的指向改为next,此时的next不为null进入else,然后将next的prev置为null,这样头节点就和下一个节点断开了联系

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com