范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

LinkedList源码解析

  1.概述
  LinkedList  同时实现了List  接口和Deque  接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。2.类图
  LinkedList类图3.属性transient int size = 0; /**  * first始终不变:  * 1、集合没有元素:first == null && last == null  * 2、集合添加了元素:first.prev == null && first.item != null  */ transient Node first;  /**  * last始终不变:  * 1、集合没有元素:first == null && last == null  * 2、集合添加了元素:(last.next == null && last.item != null)  */ transient Node last;  private static class Node {     E item;     Node next;     Node prev;      Node(Node prev, E element, Node next) {         this.item = element;         this.next = next;         this.prev = prev;     } } 4.无参构造/**  * 构造一个空集合  */ public LinkedList() { } 5.添加元素5.1 添加元素//添加元素到链表末尾 public boolean add(E e) {     linkLast(e);     return true; } /**  * first  last  * first a b last  *  */ void linkLast(E e) {     final Node l = last;     //创建节点     final Node newNode = new Node<>(l, e, null);     //last始终指向尾节点     last = newNode;     //首次添加元素     if (l == null)         //first始终指向头节点         first = newNode;     else         l.next = newNode;     size++;     modCount++; } private static class Node {     E item;     Node next;     Node prev;      Node(Node prev, E element, Node next) {         this.item = element;         this.next = next;         this.prev = prev;     } } 5.2 指定位置添加元素public void add(int index, E element) {     checkPositionIndex(index);     //如果index=size,直接在末尾添加,等同于add(e)方法     if (index == size)         linkLast(element);     else         linkBefore(element, node(index)); } /**  * 返回需要修改节点的位置  */ Node node(int index) {        //根据当前添加元素的位置判断是从头开始找还是尾开始找     if (index < (size >> 1)) {         Node x = first;         for (int i = 0; i < index; i++)             x = x.next;         return x;     } else {         Node x = last;         for (int i = size - 1; i > index; i--)             x = x.prev;         return x;     } } /**  * 将前一个节点next->newNode  * 将后一个节点pre->newNode  */ void linkBefore(E e, Node succ) {     // assert succ != null;     final Node pred = succ.prev;     final Node newNode = new Node<>(pred, e, succ);     succ.prev = newNode;     if (pred == null)         first = newNode;     else         pred.next = newNode;     size++;     modCount++; }
  add操作6. 获取元素6.1 获取第一个元素public E getFirst() {     final Node f = first;     if (f == null)         throw new NoSuchElementException();     return f.item; } 6.2 获取最后一个元素public E getLast() {     final Node l = last;     if (l == null)         throw new NoSuchElementException();     return l.item; } 7 移除元素public boolean remove(Object o) {     if (o == null) {         for (Node x = first; x != null; x = x.next) {             if (x.item == null) {                 unlink(x);                 return true;             }         }     } else {         for (Node x = first; x != null; x = x.next) {             if (o.equals(x.item)) {                 unlink(x);                 return true;             }         }     }     return false; } E unlink(Node x) {     // assert x != null;     final E element = x.item;     final Node next = x.next;     final Node prev = x.prev;      if (prev == null) {         first = next;     } else {         prev.next = next;         x.prev = null;     }      if (next == null) {         last = prev;     } else {         next.prev = prev;         x.next = null;     }      x.item = null;     size--;     modCount++;     return element; }
  remove操作8 小结LinkedList  是链表结构,所以不存在扩容。LinkedList   基于节点实现的双向链表的 List ,每个节点都指向前一个和后一个节点从而形成链表。LinkedList  随机访问平均时间复杂度是 O(n) ,查找指定元素的平均时间复杂度是多少 O(n) 。LinkedList  移除指定位置的元素的最好时间复杂度是 O(1) ,最坏的时间复杂度是 O(n) ,平均时间复杂度是 O(n) 。LinkedList  添加元素的最好时间复杂度是 O(1) ,最坏时间复杂度是 O(n) ,平均时间复杂度是 O(n) 。

秋冬季糖尿病患者,警惕热损伤诱发糖足,如泡脚烤火热水袋等前言秋冬季,降温了,糖尿病患者更感觉手脚冰冷麻痹,会选择热水泡脚烤火暖水袋等温暖双脚,因为痛温觉减退或消失,双足被烫伤也没有疼痛感由于没有疼痛不适,患者早期并未积极寻医治疗,伤口恶老话冬吃萝卜,如何区分萝卜好坏?建议多了解,少花冤枉钱冬日生活打卡季老话冬吃萝卜,如何区分萝卜好坏?建议多了解,少花冤枉钱老话说,冬吃萝卜夏吃姜,不用医生开药方。冬季多吃营养好的食物对身体有益处,健康是金,顺季而食,平安过冬!萝卜是日大雪将至,别忘了吃三宝忌三宝顺应节气而食,健康过寒冬大雪将至,别忘了吃三宝忌三宝顺应节气而食,健康过寒冬!大雪,冬季的第3个节气,小时候一直以为到了大雪节气就是要准备下大雪了,其实不然,古人在描写任何东西时都是惜字如金,更擅长运用各冬天萝卜怎么吃最好?常言道冬吃萝卜赛人参。白萝卜是冬天十分常见的蔬菜,但冬天该怎么吃萝卜才对身体更好呢?白萝卜是适合所有人群吃的吗?白萝卜炖排骨既好吃又有营养,还可以用白萝卜炖羊肉。肉类能够起到滋补的用化学知识解释生活中的现象豆腐最好不要和菠菜一起煮菠菜营养丰富,有蔬菜之王之称,但是菠菜里含有很多草酸,每100克菠菜中约含300毫克草酸。豆腐中含有较多的钙盐,两者若同时进入人体,可在人体内发生化学变化,三消息!广东秘密签大外援,周琦家中被盗,CBA第二阶段比赛延期广东队秘密签大外援上赛季广东队以第五名的成绩进入季后赛,先将天津斩落马下,八强遇到浙江20横扫,在分区决赛惨遭辽宁30被横扫。自此广东王朝落下帷幕,且广东队出现青黄不接的局面。休赛2022年中国篮球名人堂举荐入堂人物确定9人入围中国篮球协会2日晚宣布,经过中国篮球名人堂终审委员会举荐名人堂委员会审定,2022年中国篮球名人堂举荐入堂人物确定,9人入围男运动员穆铁柱胡卫东刘玉栋王治郅,女运动员宋晓波丛学娣郑马云刘强东腾讯大股东纷纷套现,名人移居国外,发生了什么?最近网上传出,马云和其家人已经定居日本,而且已经在日本生活了很长时间,而日本网友好像看到了希望,纷纷希望马云能够复制其在中国的成功,帮助日本经济取得发展。而今年年初马云被网友爆出已距离深圳很近,广东被忽略的小城市,四季气候很宜居头条创作挑战赛深圳,是很受人欢迎的城市,多少人不远千里,来到深圳发展,不是为了看城市的路灯有多亮,只是为了能看远一点,再远一点。有人留在了繁华的深圳,却不知深圳周边,还有着慢节奏的7记三分,轰27分!广东队后场悍将大爆发,勇夺CBA全明星赛MVPCBA全明星赛,南区连续届夺冠2022CBA全明星赛,连续多次延期,今天终于是来了,这比赛让球迷等了快一年了,最终,南区全明星队以10088击败了北区全明星队,由此一来,南区全明星教宝宝说话有技巧常常有刚认识的人跟我说豆豆的语言表达能力完全不像5岁的孩子,词汇量惊人,逻辑缜密,问我是怎么教的。其实我也很吃惊,看到月亮她会说明亮皎洁,看到柳树她要背一首咏柳,看到人多她会说人山
更多未知的恐怖!半合作惊悚桌游复仇女神号全面封锁来了1975年,电影异形第一部的导演雷德利斯科特将科幻恐惧悬疑三种元素成功糅合,开创出一个新的流派科幻恐怖片。在孤寂的太空飞船中,船员们被外星生物追杀,躲在幽闭空间里无法逃生阴影里还有从零开始魔兽世界(第六天)第六天,早早地起来,跑回十字路口告诉了曼科里克这个不幸的消息。他虽然很难过,但还是向我表示了感谢,并希望我们替他的妻子复仇。把任务都交完后我们就20级了,按照评论里老哥说的,我们到坦克世界周年庆典开启活动精彩奖励丰厚让人hold不住炎炎夏日,还有什么比去海边消暑更愉快的呢?坦克世界特地为大家准备了盛大的海滩party,这里有蓝天白云海浪沙滩,还有穿着比基尼的美女冒着气泡的冷饮。怎么回事?热血的战场为何变成了夏三国杀唯一一个传说级别武将,真正大佬都是低调的,朴实无华三国杀唯一一个传说级别武将,真正大佬都是低调的,朴实无华!(榴莲爱游戏)去经历,去遇见!今天又是元气满满的一天哦,去追逐你热爱的星海吧!大家好呀我是榴莲,欢迎浏览本期的榴莲说三国!同样是剖腹产,为什么你的疤痕比别人丑?和产后常做的几件事有关随着医疗水平的提升,剖腹产逐渐成为了越来越多女性的选择,在某些情况下,剖腹产保障了产妇和胎儿的平安,也能够减少顺产所要经历的阵痛。但是在对两大分娩方式进行选择时,大家还是更侧重于顺抓住秋天长高季,建议孩子,多吃5菜,促进孩子长高,家长收藏好秋天是孩子的长高季节,在饮食方面也要多注意,家长尤其要注意孩子的饮食,今天给大家分享,建议常给孩子吃这5样菜,可以更好的促进孩子长个。你有喜欢的朋友可以关注收藏哦。一时蔬虾仁主要食详述新款儿童坐便器(防臭)之前简单说述了一款新品防臭坐便器。其特点是小孩在车上应急(比如节假日高速塞车)使用,小孩便后(不必起身)马上转动挡杆闭合便袋,然后转动旋钮扣住挡杆。便袋处于闭合状态,臭味不会继续在红米K50至尊版正式官宣,首发1。5K屏幕,售价3299元?Redmi在今天正式官宣K50至尊版,作为Redmi旗下首款骁龙8芯片手机,这款机器备受消费者期待那么,这款机器都有哪些卖点呢?小宅带小伙伴们来看一下。第一,极致的性能释放体验小米5000mAh大电池67W闪充,荣耀70Pro同款芯片,售价仅1599元荣耀70Pro搭载天玑8000芯片,性能比天玑8100处理器低一些,不过也算是旗舰芯片,要比骁龙778G性能强大不少。荣耀70Pro售价是3699元起步,价格并不便宜,当然这款手机立秋后最该吃的几道菜,荤素搭配好吃不贵,看看你喜欢哪个?立秋刚过天气开始转凉,每次换季的时候就是各种疾病多发的时候,这时候饮食格外重要,今天就给大家推荐几道最适合在立秋吃的菜,各个好吃又便宜。第一个蚝油粉皮这个东北的朋友估计很熟悉,估计农村酒席怪象,热席变冷席,连酒都成了摆设,这是咋回事?相比于城市的酒店饭店,我更喜欢乡下的酒席。乡里乡亲们,围坐在一桌,挤挤攘攘,大人们聊着家长里短,小孩们在院子里跑来跑去,吆喝声嬉笑声,一阵喧哗,好生热闹。而且菜品更是丰盛,锅碗瓢盆