`
crazy木木木
  • 浏览: 51493 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

LinkedList源码详解

    博客分类:
  • java
 
阅读更多

LinkedList底层是用双向链表实现的;

下面看其构造方法:

public LinkecList(){
    header.next=header.previous=header;
}

此处构造了双向链表的一个头节点。

再看一下header的定义:

private transient Entry<E> header = new Entry<E>(null, null, null);

然后在看Entry

private static class Entry<E> {
	E element;
	Entry<E> next;
	Entry<E> previous;
。
。
。
}

 

这不正是双向链表的节点定义方式吗

下面看add(E e)方法:

public boolean add(E e) {
	addBefore(e, header);
        return true;
    }

private Entry<E> addBefore(E e, Entry<E> entry) {
	Entry<E> newEntry = new Entry<E>(e, entry, entry.previous);
	newEntry.previous.next = newEntry;
	newEntry.next.previous = newEntry;
	size++;
	modCount++;
	return newEntry;
    }

 

这是在头节点之前加入一个元素,同理,对于LinkedList的一些操作都是基于对双向列表的操作,因此,当我们往链表里面添加数据时,底层构造一个Entry对象,然后把这个对象放到链表之中

分享到:
评论

相关推荐

    java LinkedList源码详解及实例

    3. **源码分析**: - `getFirst()`和`getLast()`通过直接访问`first`和`last`属性来获取元素,这两个属性分别保存链表的第一个和最后一个节点。 - `removeFirst()`和`removeLast()`通过`unlinkFirst(Node&lt;E&gt; f)`和...

    jdk源码阅读Collection详解

    在JDK源码阅读Collection详解中,我们可以看到Collection接口的实现类有很多,如ArrayList、LinkedList、HashSet、TreeSet等。这些实现类都继承了Collection接口,并实现了其定义的方法。 在实际开发中,我们经常...

    Java LinkedList的实现原理图文详解

    Java LinkedList 的实现原理图文详解 Java LinkedList 是一个通过双向链表实现的 List 和 Deque 接口,它允许插入所有元素,包括 null,并且它是线程不同步的。如果对双向链表这个数据结构很熟悉的话,学习 ...

    C#基础与案例开发详解光盘源码(上)

    《C#基础与案例开发详解》是一本针对初学者和有一定经验的开发者设计的教程,旨在深入浅出地介绍C#编程语言的基础知识,并通过实际案例帮助读者掌握C#的运用技巧。光盘源码提供了书中所有示例的源代码,使学习过程...

    Java详解源码.zip

    Java详解源码.zip是一个包含Java编程语言源代码的压缩文件,旨在帮助学习者深入理解Java的内部机制和工作原理。这个资源可能包含了各种Java类库、框架或项目的源代码示例,通过分析这些源码,我们可以了解到Java在...

    C#基础与案例开发详解光盘源码(下)

    《C#基础与案例开发详解》是一...总的来说,《C#基础与案例开发详解》下部分的源码集,是一个深入学习C#编程、提升实践技能的宝贵资料。通过学习和实践这些内容,你不仅可以巩固基础知识,还能提高开发复杂应用的能力。

    免费开源-【Java学习+面试指南】部分内容大部分是Java程序员所需要掌握的核心知识

    ArrayList核心源码+扩容机制分析LinkedList核心源码分析HashMap核心源码+底层数据结构分析ConcurrentHashMap核心源码+底层数据结构分析LinkedHashMap核心源码分析CopyOnWriteArrayList核心源码分析...

    【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    项目相关 项目介绍 ...LinkedList 核心源码分析 HashMap 核心源码+底层数据结构分析 ConcurrentHashMap 核心源码+底层数据结构分析 LinkedHashMap 核心源码分析 CopyOnWriteArrayList 核心源码分析

    达内corejava源码

    【CoreJava源码详解】 CoreJava是Java编程的基础部分,主要涵盖了Java语言的核心特性、类库和编程实践。达内科技作为知名的IT培训机构,提供的这个源码集合可以帮助学习者深入理解Java编程的本质,掌握核心技能。 ...

    JDK源码,整合所有内容

    **JDK源码详解** JDK(Java Development Kit)是Oracle公司发布的用于开发Java应用程序的软件开发工具包,其中包含了Java运行环境、编译器、类库以及各种工具。JDK1.8版本是Java历史上的一个重要里程碑,引入了许多...

    毕向东Java基础源码+总结

    【Java基础源码详解】 Java是一种广泛使用的面向对象的编程语言,它的强大在于其跨平台性、丰富的类库以及高效的应用开发能力。本资源“毕向东Java基础源码+总结”提供了一套全面的Java基础知识的源代码示例,帮助...

    java斗地主源码

    【Java斗地主源码详解】 斗地主是一款广受欢迎的扑克牌游戏,它具有丰富的策略性和娱乐性。在IT行业中,将这类游戏转化为代码,是软件开发中的一个经典案例,能够帮助开发者深入理解面向对象编程、游戏逻辑设计以及...

    java core 卷源码

    《Java Core 卷源码详解》 Java Core是Java编程领域的基础和核心,它涵盖了Java语言的各个方面,包括语法、类库、并发编程、内存管理等。本资源为"Java Core 8 核心卷源码",是最新的版本,对于理解和深入学习Java...

    javase 版的QQ源码

    【JavaSE版QQ源码详解】 JavaSE版的QQ源码是基于Java标准版(Java Standard Edition)开发的即时通讯软件。它展示了如何利用Java语言实现一个基础的、支持多人聊天的功能,包括用户注册、登录以及消息传递等核心...

    C#连连看源码

    【C#连连看源码详解】 C#连连看是一款经典的桌面游戏,它的核心逻辑是基于图形用户界面(GUI)和算法实现的。本项目利用C#编程语言进行开发,为学习C#和游戏开发的爱好者提供了宝贵的参考资料。下面将详细探讨C#...

    JAVA图书馆管理系统源码

    **JAVA图书馆管理系统源码详解** Java编程语言在开发企业级应用方面有着广泛的应用,而图书馆管理系统作为典型的信息管理系统,是学习和实践Java技术的良好案例。本篇将详细解析基于Java编写的图书馆管理系统的源码...

    东方标准java基础案例解析源码

    【Java基础案例解析源码详解】 本资源"东方标准java基础案例解析源码"是针对初学者精心设计的一系列Java编程实例,旨在帮助学习者掌握Java语言的基础知识和编程技巧。"东方标准"通常代表着一套系统的教学体系,这里...

    连连看 C# 源码

    《连连看 C# 魔兽世界版 源码详解》 连连看,这款深受玩家喜爱的经典益智游戏,以其简洁的操作和丰富的趣味性,成为休闲娱乐的首选。而利用C#编程语言实现连连看,不仅可以提升程序员的技能,也能为游戏爱好者提供...

    计算机软件-编程源码-ava实现图书馆管理系统源码.zip

    《基于Java实现的图书馆管理系统源码详解》 在信息技术飞速发展的今天,计算机软件已经渗透到各个领域,其中图书馆管理系统的开发与应用是信息化进程中的重要一环。本篇文章将详细解析一个基于Java语言实现的图书馆...

    Java开发坦克大战源码

    《Java开发坦克大战源码详解》 在编程领域,坦克大战是一款经典的实战项目,它能够帮助开发者提升游戏开发技能,理解面向对象编程、图形界面设计以及事件处理等核心概念。本篇文章将深入探讨使用Java语言开发坦克...

Global site tag (gtag.js) - Google Analytics