java之LinkedList.add
2024-09-29 15:25:32
LinkedList:
public boolean add(E e) {
linkLast(e);
return true;
}
void linkLast(E e) {
//last为当前集合的最后一个元素的指针位置元素,并且将其赋值给名称为l的node对象
final Node<E> l = last;
//初始换一个新的node对象,传入的参数有 l:同上 e:传入的需要存入的数据对象
final Node<E> newNode = new Node<>(l, e, null);
//将新传入的数据的对象赋值给当前集合的最后指针元素
last = newNode;
//如果l为空(表示当前集合长度为零)
if (l == null)
//新创建的node对象放在集合的第一位
first = newNode;
else
//如果l对象不为空则把新创建的node对象赋值给l对象中的node类型的next对象
l.next = newNode;
//集合长度
size++;
//修改次数
modCount++;
}
Node<E>为集合中的内部静态类:
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev; Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
当调用集合add方法传入需要存放的数据时:
1、先把last(last是当前集合的最后一个元素,如果集合的长度为空,last则为null)赋给名称为l的node对象。
2、创建一个新的node对象,用来存放新的数据元素,同时通过带参构造把存入之前集合中的最后一个元素与之建立联系,将之前的最后一个元素赋给新创建的node对象的prev属性。
3、将存入的数据元素设置为当前集合中的最后一个元素
4、如果当前集合长度为空,则设置当前存入的元素为第一个元素,否则赋给存入之前的最后一个元素的next属性
最新文章
- android知识杂记(三)
- AngularJS 源码分析1
- iOS 百度地图监听地图状态
- Java中的注释
- c专家编程---优先级规则
- UIImageView帧动画相关属性和方法
- Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别
- 个人作业3--------个人总结(Alpha版本)
- 数值函数ROUND(四舍五入),TRUNC(不四舍五入),MOD
- Android调试错误-No resource identifier found for attribute &#39;showAsAction&#39;
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十八)
- python爬虫项目(scrapy-redis分布式爬取房天下租房信息)
- NLog配置分享
- uboot 如何向内核传递参数
- ftp服务器搭建(离线安装vsftpd),配置
- windows系统定时重启自定义exe程序
- JS操作Cookies的小例子
- [翻译]Event Handler Description 事件处理描述
- Android的存储方式
- Android 混淆完全解析