
Java源码学习
文章平均质量分 67
没钱怎么任性
没钱怎么任性
展开
-
Java源码集合类HashMap学习1
Java中集合类HashMap是存储键值(key,value)对为元素的集合,键和值都是以类类型来存储,通过键(key)来获得对应的值(value)。使用HashMap集合最大的一个优点是查询值(value)的速度快。 为什么集合HashMap查询值的速度快呢?这里就要涉及到HashMap的底层实现,用了数据结构哈希表(hash table)。对与哈希表的实现原理原创 2017-02-19 17:32:36 · 501 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构5红黑树
红黑树本质上一棵平衡二叉树。参考:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md原创 2017-06-10 17:22:56 · 249 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构4平衡二叉树插入一个元素的递归算法
平衡二叉排序树上插入一个新的元素递归算法(参考书籍《数据结构(C语言版)》)平衡的二叉排序树BBST(Balanced Binary Search Tree)上插入一个新的元素e的递归算法有如下几种情况。(1) 若平衡的二叉排序树为空树,则插入一个新的元素e的新结点作为平衡的二叉排序树的根结点,那么树的深度就为1;这个很好理解空树插入了一个根结点e,并且这棵树的深度为1,如下图中nul原创 2017-05-06 18:15:21 · 897 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构4平衡二叉树创建代码
平衡二叉排序树上插入一个新的元素递归算法,还是比较复杂的,特别是代码的实现上想要理解还是要动手去一步步去手动执行代码。个人理解这个算法和看示例代码也是费了很大一番功夫,理解程度上还是初级阶段。总之还是要自己去多实践才能更好理解。#include#include #define OK 1 #define ERROR 0 #define OVERFLOW -1#define原创 2017-05-14 16:59:48 · 622 阅读 · 1 评论 -
Java源码集合类TreeMap学习1——数据结构4平衡二叉树的旋转
平衡二叉树的旋转理解清楚平衡二叉树的概念。具体如何旋转是平衡二叉树保持继续平衡的,可以参考如下的两个博客和一本书。https://www.tutorialspoint.com/data_structures_algorithms/avl_tree_algorithm.htmhttp://btechsmartclass.com/DS/U5_T2.html《数据结构C++》作者原创 2017-04-23 16:07:32 · 468 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构3二叉树创建代码
二叉树的二叉链表存储结构二叉树的二叉链表存储结构,一个结点结构包含三个域:数据域、左、右指针域。如下图所示。二叉树的遍历知识参考:http://blog.youkuaiyun.com/fansongy/article/details/6798278/二叉树的二叉链表存储表示的代码如下。//Tree.cpp#include#include#define OK 1#defin原创 2017-04-22 14:34:39 · 637 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构2
二叉树的定义二叉树(Binary Tree)是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的性质性质1 在二叉树的第i层上至多有2i-1个节点(i>=1)。性质2 深度为K的二叉树至多有2k-1个节点(k>=1)。性质3 对任何一颗二叉树T,如果其终端节点数为n0,度为2的节点数为n2原创 2017-04-16 22:52:46 · 563 阅读 · 0 评论 -
Java源码集合类TreeMap学习1——数据结构1
写在前面的话TreeMap类的底层实现用到了数据结构——树(红黑树),红黑树一直没有彻底搞清楚到底是怎么实现的,因为看到了它就想放弃,觉得不去理解清楚好像也没有多大影响。但是这个是最底层最基础也是最重要的知识,往往很容易被我们忽视,弄懂了底层才能发现问题的本质,死磕到底!先从数据结构开始,慢慢深入。数据结构中的一些概念数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入原创 2017-03-26 17:38:27 · 998 阅读 · 0 评论 -
Java源码集合类LinkedHashMap学习1
LinkedHashMap类简介LinkedHashMap类继承了HashMap类,也就是LinkedHashMap类的功能几乎和HashMap一样。而LinkedHashMap类就是扩展了一个双向链表,使得可以按照“键-值”对插入的顺序遍历,这个是在HashMap类中遍历是没有顺序的。LinkedHashMap类可以插入null的key值和value值,以及这个类也是线程不安全的。重点是要了原创 2017-03-12 19:14:22 · 263 阅读 · 0 评论 -
Java源码集合类Hashtable学习
Hashtable类简介java version "1.7.0_67" Hashtable类继承了Dictionary抽象类,实现了Map、Cloneable、java.io.Serializable接口,它的底层实现原理和HashMap类是差不多的。Hashtable类最大的一个特点是:线程安全的,对外提供调用的方法都加了同步关键字Synchronized,但同时也降低了性原创 2017-03-05 19:52:31 · 356 阅读 · 0 评论 -
Java源码集合类HashMap学习2
JDK版本7u40-b431.HashMap类实现存储数据的结构HashMap类实现存储数据的结构是数组,如下一段源码://An empty table instance to share when the table is not inflated.static final Entry[] EMPTY_TABLE = {}; //The table, resized原创 2017-02-22 22:24:44 · 290 阅读 · 0 评论 -
Java源码集合类TreeMap学习2
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现参考:https://www.ibm.com/developerworks/cn/java/j-lo-tree/index.html?ca=drs-原创 2017-06-11 17:21:20 · 328 阅读 · 0 评论