LinkedList源码解析
LinkedList源码解析
特点:有序、线程不安全
1、数据结构:双向链表
模型:
2、创建
无参创建时不做任何操作
有参创建时,参数为Collection即集合,将参数转数组全部存入创建的LinkedList中
3、调用add方法添加元素 尾插法将新节点放到最后 返回boolean值
141行:获取尾节点
142行:用当前数据创建一个新节点,新节点的前一个节点是当前的尾节点
143行:新节点插入尾节点
144行:判断新节点未插入前的尾节点是不是null,如果是的话即第一次插入,将头尾节点都设置为第一次插入的节点
147行:否则不是第一次插入,指定插入前尾节点的下一个节点是新节点
148行:长度+1
149行:操作数+1
4、调用get获取元素 判断传入的index是否小于链表长度的1/2,如果是则从头节点开始往后遍历index次;如果index大于链表长度的1/2,则从尾节点开始往前遍历index次;保证遍历次数小于链表长度的1/2
checkElementIndex(index); 检查index是否超出链表长度
if判断条件用index和链表长度size右移一位即size/2的值判断,其实就是二分链表,如果index在前半部分就从首节点遍历index次获取节点,如果index在后半部分就从尾节点遍历index次获取节点,最后返回节点中存储的数据;
5、添加过程中没有做任何同步操作,线程不安全!
6、添加、删除快;查找、修改慢;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南