数据结构
steamyao
github地址:https://github.com/steamyao
展开
-
HashMap总结
一 Java7/8 中的 HashMap 和 ConcurrentHashMap 源码分析 http://www.importnew.com/28263.html?replytocom=643805#respond (强烈推荐 ) Java7 HashMap HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。 链表中存储的是Entry,Entry 包含四个属性:key...转载 2018-12-30 17:36:19 · 104 阅读 · 0 评论 -
LinkedList 与 ArrayList
LinkedList LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当作链表来操作外,它还可以当作栈,队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。 总结 1、从源码中很明...原创 2019-03-03 21:11:00 · 104 阅读 · 0 评论 -
HashTable/Set
一 HashMap 和 Hashtable 的区别 线程是否安全:HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过 synchronized修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); 效率:因为线程安全的问题,HashMap 要比 HashTable 效率高一点。另外,HashTable ...转载 2019-03-14 08:41:09 · 248 阅读 · 0 评论 -
B+Tree 与 B-Tree
一 B-Tree 1. d为大于1的一个正整数,称为B-Tree的度。(即一个节点内包含的关键字个数,如图是15 56 77 三个) 2. h为一个正整数,称为B-Tree的高度。(与树的定义相同) 3 .M是节点的孩子个数,称为b树的阶 特性 B树中每个节点包含了键值和数据对象, 任何一个关键字出现且只出现在一个结点中;(15 56 77 等就是关...转载 2019-03-10 10:13:43 · 238 阅读 · 0 评论 -
完全二叉树 堆 红黑树
一 完全二叉树 完全二叉树:对于一个树高为h的二叉树,如果其第0层至第h-1层的节点都满。如果最下面一层节点不满,则所有的节点在左边的连续排列,空位都在右边。这样的二叉树就是一棵完全二叉树。 二 堆 定义: 堆树是一颗完全二叉树; 堆树中某个节点的值总是不大于或不小于其孩子节点的值; 堆树中每个节点的子树都是堆树。 当父节点的键值总是大于或等于任何一个子节点的键...转载 2019-03-12 11:35:49 · 1572 阅读 · 0 评论