当hashMap中的节点数超过阈值的时候,就会自动扩容,扩容的时候就会调整hashMap的大小,一旦调整了hashMap的大小就会导致之前的hashCode计算出来的hash表中下标无效,所以所有的节点都需要重新hash运算,结果就是带来时间上的浪费。因此我们要尽量避免hashMap调整大小,所以我 ...
分类:
其他好文 时间:
2020-07-10 13:37:54
阅读次数:
93
参考:《Redis设计与实现》 RedisObject Redis底层的所有数据结构:都是基于对象的;RedisObject 类型; 编码; 指向实际数据的指针; typedef struct redisObject{ // 类型 unsigned type:4; // 编码 unsigned en ...
分类:
其他好文 时间:
2020-07-05 19:30:02
阅读次数:
88
1 什么是MySQL MySQL是一个关系型数据库管理系统,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。在 ...
分类:
其他好文 时间:
2020-07-02 09:29:31
阅读次数:
62
工作中遇到一个需求,需要从词库中快速判断某个关键字是否存在,词库大小不超过百万,当时脑子第一反应是用hash表相关数据结构,和同事一交流,同事推荐用布隆过滤器,查询效率不输hashmap,而且非常节省存储空间。经过研究发现布隆过滤器挺好用的,这篇文章来说说三点: 1.什么是布隆过滤器。 2.布隆过滤 ...
分类:
其他好文 时间:
2020-07-01 15:48:38
阅读次数:
57
三种散列表的公共部分 三者都是存储键值对的Key-Value key会被映射到数组索引, Entry对象则是数组中对应的值。 Key通过Hash算法得到哈希码(HashCode), 通过哈希码与数组中的索引对应。 因此所有的键值对Hash表都是无序储存的。 键值对的查找过程: (hashCode() ...
分类:
其他好文 时间:
2020-06-30 16:04:40
阅读次数:
88
#最长连续不重复子序列 给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续子序列,输出它的长度。 我们使用一个hash表和双指针动态维护双指针所夹区间内的信息。 i在前j在后。 每次i向前都使得hash[a[i]]++以此来增加序列中的元素。 接下来可能会出现冲突即[j, i]存在相同数字 ...
分类:
其他好文 时间:
2020-06-26 22:28:38
阅读次数:
44
concur'renthashmap java1.7 hashMap在单线程中使用大大提高效率,在多线程的情况下使用hashTable来确保安全。hashTable中使用synchronized关键字来实现安全机制,但是synchronized是对整张hash表进行锁定即让线程独享整张hash表,在 ...
分类:
其他好文 时间:
2020-06-25 21:34:40
阅读次数:
52
// 过滤重复数组 function array_uniq(input_arr) { // 判断规格是否重复 var h={}; //定义一个hash表 var arr=[]; //定义一个临时数组 for(var i = 0; i < input_arr.length; i++){ //循环遍历当 ...
分类:
编程语言 时间:
2020-06-23 18:46:32
阅读次数:
122
SynchronizedMap 一次锁住整张表来保证线程安全,所以每次只能有一个线程来 访为 map。 ConcurrentHashMap 使用分段锁来保证在多线程下的性能。 ConcurrentHashMap 中则是一次锁住一个桶。ConcurrentHashMap 默认将 hash 表分为 16 ...
分类:
其他好文 时间:
2020-06-21 13:30:40
阅读次数:
44
2020-06-18 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 题解: 思路1:排序+哈希表 var groupAnagrams = function (strs) { // hash表存的是有哪些组合的单词出现 i是出现时候插入到res ...
分类:
其他好文 时间:
2020-06-18 10:55:06
阅读次数:
55