1.LinkedList是个双向循环链表。见下图:

2.下面自己照jdk写个简单例子:

//首先是链表的结点的数据结构结构
static class Entry<E> {E element; // 存放的元素Entry<E> next; // 指向下一个 Entry节点     Entry<E> previous; // 指向上一个Entry节点Entry(E element, Entry<E> next, Entry<E> previous) {this.element = element;this.next = next;this.previous = previous;}}
//下面是链表的实现
public class MyLinkedList<E> {// 头结点,一个标识,靠它来进入链表private transient Entry<E> header = new Entry<E>(null, null, null);private transient int size = 0;public MyLinkedList() {// 构造,下一个和前一个都指向自身,见上图的空链表header.next = header.previous = header;}// 添加到头部,可以添加空值public void addFirst(E e) { addBefore(e, header.next);}private Entry<E> addBefore(E e, Entry<E> entry) {/** 1.空链表情况:newEntry的next指向header,newEntry的previous指向header。[header空时: next和previous都指向header]* 2.非空链表情况:newEntry的next指向header的next,newEntry的previous指向header.next.previous 就是header本身*/Entry<E> newEntry = new Entry<E>(e, entry, entry.previous);/** 1.空链表情况:newEntry.previous就是header 它的next指向newEntry* 2.非空链表情况:newEntry.previous就是header 让header.next指向newEntry*/newEntry.previous.next = newEntry;/** 1.空链表情况:newEntry.next上面已经指向了header 所以就是让header的previous也指向newEntry* 2.非空链表情况:newEntry.next 是header的previous ,* 所以就是让header的前一个结点的previous指向newEntry*/newEntry.next.previous = newEntry;size++;// 如看不懂,见对着上面的图就能分析清楚return newEntry;}public void addLast(E e) { // 自己根据addFirst可以分析出来addBefore(e, header);}public boolean remove(Object o) {for (Entry<E> e = header.next; e != header; e = e.next) {//遍历链表if (o.equals(e.element)) { //找到了这个结点remove(e);//该表指针关系return true;}}return false;}private E remove(Entry<E> e) {E result = e.element;//这个结点的上一个结点的下一个指向这个结点的下一个,就是把它的上一级的关系给踢出了e.previous.next = e.next;//这个结点的 下一个结点 的 上一个 指向 这个结点的前一个结点, 就是踢出了 下一级的关系e.next.previous = e.previous;e.next = e.previous = null;//清除e.element = null; // 清除size--;return result;}}

好了基本就是这样,其实就是数据结构中的双向循环链表,大学学过数据结构的都应该明白。
老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400

LinkedList解析相关推荐

  1. 某团技术拷问:ArrayList 和 LinkedList 哪个更占空间?

    HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 JVM.MySQL.Redis,再到悲观锁.乐观锁一个都不缺,并发编程.分布式也都接触过,像是个实力派! 着急用人,就赶紧叫人 ...

  2. c++ list遍历_List集合就这么简单「源码剖析」

    前言 声明,本文用得是jdk1.8 前一篇已经讲了Collection的总览:Collection总览,介绍了一些基础知识. 现在这篇主要讲List集合的三个子类: ArrayList 底层数据结构是 ...

  3. Android课程设计:基于离线地图服务器的Android地图应用

    Android开发课程设计:基于离线地图服务器的Android地图应用 此项目的灵感来源于伯克利cs61b的Project3: cs61b的官网地址:Project 3: Bear Maps 我的实验 ...

  4. 设计模式之 Interpreter(解释器) 通俗理解

    23种设计模式 1 Interpreter定义: 定义语言的文法 ,并且建立一个解释器来解释该语言中的句子.通俗来讲就是定义一套规则,然后有个工具类,根据你传入的参数就知道你表达的意思. Interp ...

  5. 小圣求职记A:腾讯篇

    本人普通985高校计算机专业研究生一枚,从9月12号开始正式找工作,一个月过去了,参加了能参加的各个互联网公司的宣讲.笔试.面试,现用两篇随笔分享所见所闻.随笔A将以腾讯为例详细展示整个过程,随笔B将 ...

  6. Java选择题练习 ---(NKW)

    Java选择题 第一周期: 注:题目均来自于牛客网 1.Java 语言中,负责并发管理的机制是(多线程). 解析:多线程是Java程序的并发机制,它能同步共享数.处理不同的事件. 2.区分类中重载方法 ...

  7. Java 爬虫:是时候 Get 新技能了,使用 Java 爬取网页信息

    如果你想利用自己的技术做出一点有意思的产品来,那么爬虫.算法和 AI 等技术可能是一个不错的突破口.今天,我们就来介绍下使用 Java 爬取页面信息的几种思路. 说起爬虫,自从 Python 兴起之后 ...

  8. 是时候 Get 新技能了:使用 Java 爬取网页信息

    如果你想利用自己的技术做出一点有意思的产品来,那么爬虫.算法和 AI 等技术可能是一个不错的突破口.今天,我们就来介绍下使用 Java 爬取页面信息的几种思路. 说起爬虫,自从 Python 兴起之后 ...

  9. 阿里的easyexcal包实现表格动态导出

    阿里的easyexcal包实现表格动态导出 1.介绍 在日常开发中,我们或多或少会遇到导入excal,导出excal等业务需求,那么了解这一技能就很有必要了. 市场中针对这个,我知道的有两个包,一个是 ...

最新文章

  1. Revit API创建几何实体Solid并找到与之相交的元素
  2. 【整理】【转载】高薪是怎么跳出来的?
  3. AIX系统文件安全性方面的几点考虑
  4. android view强制重绘_android view 相关方法 layout draw 布局 重绘 | 学步园
  5. Python基础教程:列表(list)切片详细操作
  6. 二阶差分预测后数据还原公式_携程如何基于ARIMA时序分析做业务量的预测
  7. twisted系列教程十八–异步操作的并行运行
  8. Java实现单例模式之饿汉式、懒汉式、枚举式,带测试。
  9. arp 不同网段 相同vlan_同vlan不同网段能否ping通?
  10. 携程运维自动化平台,上万服务器变更也可以很轻松
  11. ConnectionString 最简便写法 for MSSQL 2005 EXPRESS
  12. MySQL入门02-MySQL二进制版本快速部署
  13. 浅谈系统如何对接社交登录之微博登录功能
  14. 如何使用Java进行网络爬虫
  15. revit二次开发 创建标注标记
  16. react 微信公众平台实现支付功能
  17. 什么是WebP图片格式?如何在线把Webp格式转换为JPEG格式?
  18. [转]十分简明易懂的FFT(快速傅里叶变换)
  19. 燕山大学教务系统官网计算机学院,2021年燕山大学教务系统入口:https://jwc.ysu.edu.cn...
  20. 无法访问网上邻居终极解决办法!

热门文章

  1. maven实战和学习(带视频教程)
  2. pythonrandint用法_Python:randint()用法
  3. Java实现文件写入——IO流(输入输出流详解)
  4. 帮助企业制作帮助文档的6大“黑科技”工具!
  5. Java标识符及关键字
  6. 根目录index.php-wp-blog-header.php-wp-load.php-wp-config.php
  7. 多媒体web播放器,移动端h5 video播放器
  8. 明道云对接企查查,一键矫正客户信息
  9. 工业4.0时代是挑战也是机遇
  10. 值得记住的爱情箴言(2)——阿牛我收藏的