一:Set类型 set数据不重复,元素无序,添加删除复杂度都是O1,value为NULL的Hash表 sadd (添加) 返回成功添加的个数 smembers key 显示所有元素 sismember key value 判断元素是否存在,是返回1,否返回0 scard key 返回元素的个数 sr ...
分类:
其他好文 时间:
2020-01-03 00:32:45
阅读次数:
95
一、扩容的基本思路 JDK1.8中,ConcurrentHashMap最复杂的部分就是扩容/数据迁移,涉及多线程的合作和rehash。 扩容思路 Hash表的扩容包含的两个步骤: ① table数据的扩容 table数组的扩容,一般就是新建一个2倍大小的桶数组,这个过程通过一个单线程完成,且不允许出 ...
分类:
其他好文 时间:
2020-01-02 22:07:01
阅读次数:
67
mysql索引数据结构选择的是B+树。以下列出可选用的数据结构,和他们所存在的一些缺点。 二叉树(如果是线性增长的数据,则二叉树会一直增加深度)红黑树 (虽然红黑树解决了线性增长的数据问题,但是对于百万数据来说,树的深度还是太深)hash表(hash算法这种适用于查询单条数据,根据key-value ...
分类:
数据库 时间:
2020-01-02 18:53:24
阅读次数:
89
来一波用vector的最短代码题解 "P4305 [JLOI2011]不重复数字" 1. 关于hash表的部分大家可以看一看其他的题解,我就不说了 2. 不定长数组vector的几个基本用法: 1. 定义: 2. 访问: 3. 尾部加入元素: 4. 判断是否为空: 3. 代码: ...
分类:
其他好文 时间:
2019-12-21 11:34:04
阅读次数:
77
数据结构和算法 重点内容 数据结构:字符串、栈、队列、二叉树、优先队列、hash表(Redis怎么用的)、B+树(数据库索引) 算法:基本的几种排序、DFS、BFS、基本的动态规划、基本的图算法如果不是专门的算法工程师,消化好这些内容就够了。真的要手撕红黑树,那就有点夸张了。 参考书籍 《程序员面试 ...
分类:
其他好文 时间:
2019-12-15 23:52:10
阅读次数:
285
// in C++ 前段时间在看一些关于这个的文章时遇到了一些问题:unordered_map / HashTable 的负载因子是什么意思 经过度娘的搜索,最后得出: 若设 Hash 表的桶数量为 len, 桶中元素总个数为 n, 负载因子为 alpha, 则若 n alpha len 时会扩容 ...
分类:
其他好文 时间:
2019-12-14 18:56:10
阅读次数:
105
题目描述 等级: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 1。 注意事项: 思路 对于字符串和Hash表的考察。 首先遍历一遍字符串中字符,用Hash表存储字符与其出现的次数。 再遍历一遍字符串中的字符,当碰到第一个出现次数为1的字符时,返回响应的索引位置。 ...
分类:
其他好文 时间:
2019-12-03 01:48:37
阅读次数:
111
先看代码: HashMap 运行结果: 开了 50 个线程往 HashMap 中添加元素,每个线程执行 50 次 put 方法,在线程安全的情况下,map 中应该有 2500 个键值对,但是执行的结果大都是小与 2500 的(并不会产生死循环)。 Hashtable 运行结果: 无论运行多少次,结果 ...
分类:
编程语言 时间:
2019-11-23 12:52:40
阅读次数:
74
1.实现结构是hash表bucket,底层就是node,也有人称为段(segment) 2.put,通过对key执行hashcode()找到对应对索引,当hashcode相同是发生“碰撞”,采用链表方式存储,jdk8在量大时引入红黑树数据结构 3.get,通过对key执行hashcode()找到对应 ...
分类:
其他好文 时间:
2019-11-19 01:13:45
阅读次数:
67
hash命令 系统初始hash表为空,当外部命令执行时,默认回从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找利用hash缓存表将大大提高命令的调用速率。 常见的使用方 ...
分类:
其他好文 时间:
2019-11-09 11:37:19
阅读次数:
121