数据结构
Danny_idea
热爱技术,热爱生活,一步一个脚印。
更多宝贵知识记录可以关注个人公众号:Idea的技术分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于bitmap,布隆过滤器
什么是bit,什么是byte? bit中文名称是位,音译“比特”,是用以描述电脑数据量的最小单位。在二进制数系统中,每个0或1就是一个位(bit)。bit 来自binary digit (二进制数字),1byte=8bit,byte是计算机里面的基本单位,1mb=1024*1024bit。 假设当我们需要在一千万个整数(整数的范围在1-1亿之间)里面快速查找某个整数是否存在于其中的话,如...原创 2019-04-01 16:17:33 · 3089 阅读 · 4 评论 -
重复造轮子(1) --- 手写HashMap
手写Hashmap代码:首先我们需要了解jdk里面hashmap的源码部分,如果对于hashmap的源码有了解的朋友,就应该会知道hashmap里面的这段代码: 是的,这是一段经典的node节点代码,我们可以吧hashmap看成一个存储单向链表的数组,然后每个链表里面的元素都是包含有相应的k v值。参考源码的内容,我写了一小段自己关于hashmap的设计代码:首先是一个父类接口的设计:/** *...原创 2018-07-04 10:49:50 · 1854 阅读 · 1 评论 -
HashSet的底层原理
众所周知,hashset里面存储的元素都具有无序性,标识唯一性。但最近仔细研究了一下java里面的hashset,发现hashset里面大多数的内容都是在hashmap的基础上进行修改的。 接下来是hashset的源码展示: package java.util; import java.io.InvalidObjectException; /** * This class ...原创 2018-07-04 11:04:42 · 12597 阅读 · 0 评论 -
聊聊ArrayList的问题
List这种数据结构可以说在我们的实际工作中经常会使用到,最常见的就是ArrayList和LinkedList两种实现类了,两种结构的操作看似相似,但是原理却差别巨大。关于这两者的差别,小编特意总结了一些干货和各位读者们进行分享。 ArrayList和LinkedList的区别? 通过阅读util包里面的源码可以很容易的看出两者的大致区别: ArrayList是一种具有动态扩容特...原创 2019-03-15 07:40:40 · 469 阅读 · 0 评论 -
ARTS-5-算法练习-二叉树的前序遍历和后序遍历
概述: 左耳朵耗子专栏《左耳听风》用户自发每周完成一个ARTS: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip:学习至少一个技术技巧 4.Share:分享一篇有观点和思考的技术文章 Algorithm 题目概述: Given a binary tree, return thepostor...原创 2019-05-01 23:16:06 · 296 阅读 · 0 评论 -
堆排序--从理论到实践
什么是堆 堆的基本特点有以下两项: 1.堆是一颗完全二叉树。 2.堆里面的每个节点都要大于或等于(或者小于等于)其子树节点的每个节点值。 什么是完全二叉树 要求除了最后一层以外,其余层的节点都要是满的。 大顶堆 每个节点的值都大于其子节点的值,我们通常称之为大顶堆。 小顶堆 每个节点的值都小于其子节点的值,我们通常称之为小顶堆。 那么我们该如何来进行一个堆的构建呢? 先别急,我们来了解以下的几个...原创 2019-05-17 18:48:17 · 296 阅读 · 1 评论 -
lucene从理论到实践
lucene里面常用的功能总结: 首先我们需要导入相关的依赖配置信息: <!--核心jar包--> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artif...原创 2019-05-23 15:07:31 · 351 阅读 · 0 评论 -
ARTS-7-算法练习-二叉树查找最小深度
概述: 左耳朵耗子专栏《左耳听风》用户自发每周完成一个ARTS: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip:学习至少一个技术技巧 4.Share:分享一篇有观点和思考的技术文章 Algorithm 题目概述: A linked list is given such that each node c...原创 2019-06-02 23:11:20 · 283 阅读 · 0 评论 -
ARTS-13-LRU算法的学习
概述: 左耳朵耗子专栏《左耳听风》用户自发每周完成一个ARTS: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip:学习至少一个技术技巧 4.Share:分享一篇有观点和思考的技术文章 Algorithm 题目概述: 实现一段lru缓存的功能 package 算法部分.缓存淘汰算法.LRU; imp...原创 2019-07-23 00:06:48 · 211 阅读 · 0 评论
分享