关于LinkedList的详细阐述( 三 )
这里复杂点体现在需要判断 next 不为空和为空的场景 , 代码注释中有详细的描述 。
迭代器删除
LinkedList 在删除元素时 , 也推荐通过迭代器进行删除 , 删除过程如下:
public void remove() {checkForComodification();// lastReturned 是本次迭代需要删除的值 , 分以下空和非空两种情况:// lastReturned 为空 , 说明调用者没有主动执行过 next() 或者 previos() , 直接报错// lastReturned 不为空 , 是在上次执行 next() 或者 previos()方法时赋的值if (lastReturned == null)throw new IllegalStateException();Node
总结LinkedList 适用于要求有顺序、并且会按照顺序进行迭代的场景 , 主要是依赖于底层的链表结构 , 在面试中的频率还是蛮高的 , 相信理清楚上面的源码后 , 应对面试应该没有问题 。
推荐阅读
- 高下立现!关于核心技术的态度,柳传志和任正非截然不同
- 关于手机的谣言……别再信了
- 这次真不站华为!关于华为下架腾讯游戏事件!华为有点不够意思
- 关于特斯拉副总裁陶琳女士回应的回应
- 关于小米11“环保”,是我们低估了雷军,还是小米高估了人性?
- 小米11正式发布,关于送不送充电器,雷军给出了一个“神奇”的方案
- 关于销售破万的华为新机!原来罗永浩曾经的话,还真的没有说错
- 关于5G手机的5个伪真相,别再继续被人骗下去了
- AirPods Max是如何低功耗运作的,来看详细说明
- 超好用的UnixLinux 命令技巧 大神为你详细解读