摘要:
1、依赖库来源 POM依赖一个库 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version></dependency> 会从如下几个地方获取 本地仓库 阅读全文
摘要:
都是平衡二叉树。JDK热衷使用红黑树而非AVL树。 对比: 1、AVL树是严格平衡的,红黑树非严格平衡, 这点看查询效率AVL树 略好于 红黑树,但都是O(lon n)数量级 2、AVL树添加时最多2次旋转操作达到平衡,而删除时,可能删除节点以下的所有节点都需要旋转-> O(lon n)次 红黑树最 阅读全文
摘要:
一、定义 特点: 1、有多层链表,每层都是排序好的 2、每一个级别都是其更低级别的子集 3、除最底层Level0,每层每个索引节点包含两个指针,一个向下,一个向右; 如下: 二、复杂度 增删查可以在O(logn)时间内完成 数组可以二分,跳表就是实现可以二分的链表, 查询时从最上层开始,只要右侧节点 阅读全文
摘要:
一、队列 queue常用方法: 二、List 三、Set 四、Map 阅读全文
摘要:
一、定义 可以理解为"配对"队列 特点: 1、内部没有存储 2、阻塞队列 3、发送或者消费线程会阻塞,只有有一对消费和发送线程匹配上,才同时退出。 4、配对有公平模式和非公平模式(默认) 公平模式用队列实现 ,每次从队列head开始匹配 非公平模式用栈实现,每次从栈顶开始匹配。 二、使用 代码: p 阅读全文
摘要:
一、定义 时延队列,只要经过一段时间后才能从队列中取出。 特点: 1、无界的阻塞队列。 2、只能存放实现了Delayed接口的对象 时延就是通过getDelay获取的,getDelay<=0时,才能取出队列中的值 3、内部使用PriorityQueue , 比较的就是时延 二、使用 代码样例 pub 阅读全文
摘要:
一、定义 LSM(Log Structured Merge Trees)日志结构合并树。 其实不是一种树,是一种思想 根B/B+树一样,常用于一些nosql数据库的索引结构(如Hbase Cassandra SQLite)。 它的出现时为了解决B+树 磁盘IO随机读取的效率问题。 LSM索引只做ap 阅读全文
摘要:
一、定义 Trie树,又叫前缀树、字典树 典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计 特点:额外构造一颗Trie树,后续查询以O(len) (len为字符串长度) 时间复杂度完成查找和统计,以空间换时间 Trie树的基本性质: (1)根节点不包含 阅读全文
摘要:
一、定义 Huffma树,霍夫曼树 或 哈夫曼树,是一种带权路径和最短的树,也叫最优二叉树 一个树的带权路径和=每个叶子节点的带权路径长度之和 一个叶子节点的带权路径长度 = 节点权值 * 层高 如下,节点1的带权路径长度=1*2(层高)=2 整个树的带权路径长度=1*2 + 2*2 + 3*2 + 阅读全文