数据结构
文章平均质量分 85
My_Dream_Go
这个作者很懒,什么都没留下…
展开
-
Java集合框架分析(四)——List集合之LinkedList源码分析
继续说List集合的另一个大头,LinkedList,首先我们先对它有个整体的了解,首先看这段代码:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java...原创 2014-05-03 23:56:08 · 80 阅读 · 0 评论 -
Java集合框架分析(二)——List集合之ArrayList源码分析
析源码,自己实现对应的数据结构,实现下集合中的大部分常用方法。 上一章说到List的特点:元素是有序的并且元素是可以重复的,因为该集合有索引,讲到这里学过数据结构的人就知道了其实这就是一个线性表,确实list的底层数据结构就是线性表。我们来看List接口的实现类,最常见的大概就四种,ArrayList, LinkedList, Vector, Stack.,这里我们就对ArrayList和LinkedList进行分析因为他们是最常用的并且代表了线性表的两个典型实现,顺序表(数组)和链表。原创 2014-04-29 01:28:34 · 56 阅读 · 0 评论 -
Java集合框架分析(三)——List集合之ArrayList实例和Iterator迭代器源码分析
static void main(String[] args) { ArrayList<Object> al = new ArrayList<Object>(); al.add(new Person("asdf", 25)); al.add(new Person("asdf1", 32)); al.add(new Person("asd2f", 44)); al.原创 2014-04-29 20:23:50 · 52 阅读 · 0 评论 -
Java集合框架分析(四)——List集合之LinkedList源码分析
t<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 这里我们可以看出LinkedList实现了List和Deque接口,并且继承了AbstractSequentialList,这里知道LinkedList的底层实现其实是一个双向链表,并且通过实现List和Deque接口,可以被当做队列和堆栈进行操作。还实现了Serializabl原创 2014-05-03 23:56:08 · 73 阅读 · 0 评论 -
Java集合框架分析(五)——List集合之自己实现一个数组栈
2014-05-04 13:19:52 · 71 阅读 · 0 评论 -
Java集合框架分析(六)——Hash表深入分析
5.装载因子的分析 一.哈希表的概念: 我们先来看下官方的解释:散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 就是说,对于每个元素,将他看成一个key值,通过一个散列函数,得到所对应的value值映射到一个表中。这种转换是一种压缩映射,也就是,原创 2014-05-05 14:17:39 · 98 阅读 · 0 评论 -
Java集合框架分析(七)——自己实现hash表
原创 2014-05-06 00:30:25 · 92 阅读 · 0 评论 -
Java集合框架分析(八)——从哈希到布隆过滤器
原创 2014-05-07 00:02:39 · 102 阅读 · 0 评论 -
Java集合框架分析(九)——布隆过滤器深入分析及其误判概率计算
数,之前 我们的例子是有一亿的网址要存储,要先建立一个16亿的bit array,然后以每个网址为键值得到8个value值,这里我们就有疑问了,为什么要16亿,为什么要8个value值?那我们不妨把这些都设成未知数,设我们要输入n个元素,生成m个bit位,需要k个hash function得到value值。然后还有我们要分析的一个参数,误报率P(error)。这样一来我们再来看看布隆过滤器的算法。 首先系统要算出n个元素需要多少个 m bit位并且都设置成0,为了插入一个元素,要用hash算原创 2014-05-07 20:34:23 · 324 阅读 · 0 评论 -
Java集合框架分析(一)——总体概述
原创 2014-04-29 00:03:49 · 91 阅读 · 0 评论 -
Java集合框架分析(三)——List集合之ArrayList实例和Iterator迭代器源码分析
继续之前的ArrayList分析,分析完源代码之后我们就实现一点实例来看看ArrayList中常用API的用法,不多说先上代码:public class ArrayListDemo2 { public static void main(String[] args) { ArrayList<Object> al = new ArrayList<Objec...原创 2014-04-29 20:23:50 · 103 阅读 · 0 评论 -
Java集合框架分析(五)——List集合之自己实现一个数组栈
花了半个小时复习了下栈,自己用数组简单实现了下,也为之后要分析到的Vector和Stack做个准备,只是个简单的数组栈,还没有像Stack里面那么优化,代码如下: class Stack { // 定义一个数组来实现栈 private Object[] stack; // 栈内的元素个数,也可以当做栈顶元素的游标来用 private int size = 0...2014-05-04 13:19:52 · 91 阅读 · 0 评论 -
Java集合框架分析(六)——Hash表深入分析
今天来分析数据结构的一个大头,哈希表。主要分析这么几个方面:1.哈希表的概念 2.哈希冲突 3.哈希冲突的解决方法 4.哈希表的时空复杂度 5.装载因子的分析 一.哈希表的概念: 我们先来看下官方的解释:散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计...原创 2014-05-05 14:17:39 · 117 阅读 · 0 评论 -
Java集合框架分析(七)——自己实现hash表
开始之前先吐槽一下,妈蛋实现代码花了一个小时,调试起码花了一晚上,终于在这时候差不多了。和jdk的对比了下,10W以下的数据还好,10W以上就开始差别大了。不管怎么说还是实现了。原先是想把HashMap的源码分析一起弄上来的不过在实现的过程中就差不多把源码分析一遍了,其他小伙伴很多都分析了就不再出博客分析了,直接上代码:package com.hash.demo;/*...原创 2014-05-06 00:30:25 · 108 阅读 · 0 评论 -
Java集合框架分析(八)——从哈希到布隆过滤器
今天说一个新的数据结构,布隆过滤器。一.哈希的优缺点: 首先我们要从哈希说起,对于数据的存储,查询,插入,哈希表肯定是最好的选择,他的时间复杂度接近于O(1)。但是为了减少哈希冲突,也就是为了时间复杂度尽量小,就要空间利用率相对低。这就是用空间换时间。所以说哈希表的优点是速度快,准确,缺点是空间浪费。现在我们从一个经典问题来看,比如gmail需要过滤垃圾邮件...原创 2014-05-07 00:02:39 · 288 阅读 · 0 评论 -
Java集合框架分析(九)——布隆过滤器深入分析及其误判概率计算
上篇文章简单的介绍了下布隆过滤器,让大家知道了下其原理,现在我们进行下深入分析。 首先,我们要明确布隆过滤器的几个参数,之前 我们的例子是有一亿的网址要存储,要先建立一个16亿的bit array,然后以每个网址为键值得到8个value值,这里我们就有疑问了,为什么要16亿,为什么要8个value值?那我们不妨把这些都设成未知数,设我们要输入n个元素,生成m个...原创 2014-05-07 20:34:23 · 2463 阅读 · 0 评论 -
Java集合框架分析(十)——布隆过滤器的简单java实现
上一篇已经分析的很透彻了,代码应该很好实现了,来个简单版的,直接定义k=8,忽略P(error),直接上代码:/** * 简单的布隆过滤器实现,k值设为8,不计算P(error)值,测试的的时候输入10000个字符串,位集大小设成5000 << 10000 * @author lenovo * */class BloomFilterdemo { ...原创 2014-05-08 23:57:41 · 132 阅读 · 0 评论 -
Java集合框架分析(一)——总体概述
Java集合框架分析(一)——总体概述 集合框架大家肯定都用过,但是什么事集合框架?他是基于什么数据结构?每个方法都实现了吗?相信很多人没有深入研究过,因为搞云计算要分析hadoop源码,就把java又重头复习了一遍,集合框架这部分我觉得有必要深入研究下。好了不说废话直接开始。首先集合框架...原创 2014-04-29 00:03:49 · 107 阅读 · 0 评论 -
Java集合框架分析(二)——List集合之ArrayList源码分析
Java集合框架分析(二)——List集合之ArrayList源码分析 因为复习集合框架的本意是要学习集合框架,因此我接下来做三个任务,分析源码,自己实现对应的数据结构,实现下集合中的大部分常用方法。 上一章说到List的特点:元素是有序的并且元素是可以重复的,因为该集合有索引,讲到这里学过数据结构的人就知道了其实这就是一个线性表,确实list的底层...原创 2014-04-29 01:28:34 · 115 阅读 · 0 评论 -
Java集合框架分析(十)——布隆过滤器的简单java实现
原创 2014-05-08 23:57:41 · 125 阅读 · 0 评论