HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对 ...
分类:
其他好文 时间:
2019-01-24 01:11:52
阅读次数:
169
Shell Associative Array Shell Associative Array bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很 ...
分类:
编程语言 时间:
2019-01-21 11:20:13
阅读次数:
168
"上一章" 中,我们使用了 的技术来处理 ,并用了 实现,贲张我们将实现 中的 、`搜索 删除`接口。 实现接口 我们的 将会实现如下的接口: Insert函数 在 中插入一条记录时,我们需要遍历整个 知道找到一个空的位置,然后执行插入并将 的大小加 。`hash表 count hash表 缩放ha ...
分类:
编程语言 时间:
2019-01-15 22:56:40
阅读次数:
284
"上一章" 我们解释了 中最重要的 ,并用伪代码和C语言实现了一个我们自己的 ,`hash函数 碰撞 碰撞`时我们改如何有效的处理呢?这章我们就来讲解下。 处理碰撞 中将无限大的输入映射到有限的输出中,当不同的输入映射到相同的输出时,就会发生 ,每个的 都会采用不同的方法来处理 。 我们的哈希表将使 ...
分类:
编程语言 时间:
2019-01-15 00:38:05
阅读次数:
263
"上一章" ,我们讲了 的数据结构,并简单实现了 的初始化与删除操作,这一章我们会讲解 和实现算法,并手动实现一个 函数。 Hash函数 本教程中我们实现的 将会实现如下操作: 输入一个字符串,然后返回一个 到`m`(Hash表的大小)的数字 为一组平常的输入返回均匀的 索引。如果Hash函数不是均 ...
分类:
编程语言 时间:
2019-01-14 00:22:08
阅读次数:
190
"上一章" ,简单介绍了 ,并提出了本教程中要实现的几个 的方法,有 、`insert(a, k, v) delete(a, k) Hash table`使用的数据结构。 数据结构 hash表中存储的每一项 的数据结构: 我们的hash表中保存着一个指向每一项的指针数组,里面还包括hash表的大小, ...
分类:
编程语言 时间:
2019-01-10 01:09:52
阅读次数:
195
https://leetcode.com/tag/hash-table/ ...
分类:
其他好文 时间:
2019-01-09 13:31:00
阅读次数:
179
在计算中, 一个哈希表(hash table 或hash map) 是一种实现关联数组(associative array) 的抽象数据类型, 该结构可以将 键映射到值。 哈希表使用 哈希函数/散列函数 来计算一个值在数组或桶(buckets)中或槽(slots)中对应的索引,可使用该索引找到所需的 ...
分类:
其他好文 时间:
2019-01-07 21:08:55
阅读次数:
200
1.哈希表介绍 前面我们已经介绍了许多类型的数据结构。在想要查询容器内特定元素时,有序向量使得我们能使用二分查找法进行精确的查询((O(logN)对数复杂度,很高效)。 可人类总是不知满足,依然在寻求一种更高效的特定元素查询的数据结构,哈希表/散列表(hash table)就应运而生啦。哈希表在特定 ...
分类:
编程语言 时间:
2019-01-03 22:34:56
阅读次数:
192
哈希表在查找方面有非常大应用价值,本文记录一下利用哈希散列表来统计文本文件中每个单词出现的重复次数,这个需求当然用NLP技术也很容易实现。 一、基本介绍 1、Hash Key值:将每个单词按照字母组成通过一个乘子循环运算得出一个小于29989的整数,29989是一个比较大的质数。0~29989即为K ...
分类:
其他好文 时间:
2019-01-01 21:46:17
阅读次数:
271