1. 概述 a. 它就是一个键值对,对于hash冲突的处理采用了头插法的链式存储来解决。 b. 对rehash,扩展就是取第一个大于等于 used * 2 的2 ^ n的数作为新的hash表大小;缩紧就是取第一个大于等于 used 的2 ^ n的数作为新的hash表大小。 c. 有个负载因子的概念( ...
分类:
其他好文 时间:
2018-08-27 23:21:54
阅读次数:
240
一、Hash 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。 这个映射函数称做散列函数,存放记录的数组称做散列表。 实现Hash算法的关键:实现 ...
分类:
编程语言 时间:
2018-08-04 00:05:33
阅读次数:
254
1、HashMap是否是线程安全?讲讲底层实现实现过程(考验是否看过源码),它怎么解决Hash冲突的 2、Swith() 方法能放String类型作为参数?Long类型呢? 3、讲讲你所了解的设计模式,现场手写一个单列模式,要求具有安全性,并讲讲你平常项目中又没用到单列模式 4、谈谈你对高并发秒杀系 ...
分类:
其他好文 时间:
2018-07-28 13:51:13
阅读次数:
130
本文要解决的问题 1.HashMap的结构是怎样的 2.HashMap怎么解决Hash冲突的 要解决以上两个问题 我们只要假设new 一个HashMap 然后把.put()走一遍 就会知道结果了 首先我们看看最基本的一些东西 (1)HashMap的存放单位 最开始每个存放单位是一个Node,后来转变 ...
分类:
其他好文 时间:
2018-06-29 20:41:50
阅读次数:
173
HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用), ...
分类:
其他好文 时间:
2018-05-18 18:10:56
阅读次数:
144
1、HashMap底层原理分析(put、get方法) HashMap底层是通过数组加链表的结构来实现的。HashMap通过计算key的hashCode来计算hash值,只要hashCode一样,那hash值就是相同的。当hash值相同时,就会出现hash冲突,HashMap通过链表来解决冲突。 原理 ...
分类:
其他好文 时间:
2018-05-14 13:17:26
阅读次数:
172
当你从HashMap里面get时,你其实在干什么? 从上面代码中可以看出,如果 HashMap 的每个 bucket 里只有一个 Entry 时,HashMap 可以根据索引、快速地取出该 bucket 里的 Entry;在发生“Hash 冲突”的情况下,单个 bucket 里存储的不是一个 Ent ...
分类:
编程语言 时间:
2018-05-05 16:46:16
阅读次数:
191
在线远程视频面试 一面: 自我介绍。 知道哪几种排序算法,各算法的时间复杂度。 解决hash冲突的几种方式。 有哪些方法清除cache中旧的数据。不太清楚,我扯到了操作系统中缺页中断的页面置换原理上,什么FIFO、最近最少使用、加权重等等。 进程和线程的区别。 多进程和多线程的使用场景。多进程答了一 ...
分类:
编程语言 时间:
2018-04-19 23:55:49
阅读次数:
274
Hash索引的限制 Hash索引必须进行二次查找 Hash索引无法用于排序 Hash索引不支持部分索引查找,也不支持范围查找 Hash索引中Hash码的计算可能存在Hash冲突 为什么要使用索引 索引大大减少了存储引擎需要扫描的数据量 索引可以帮助我们进行排序以避免使用临时表 索引可以把随机I/O变 ...
分类:
数据库 时间:
2018-03-21 15:39:54
阅读次数:
206
题目背景 此题约为NOIP提高组Day2T2难度。 题目描述 众所周知,模数的hash会产生冲突。例如,如果模的数p=7,那么4和11便冲突了。 B君对hash冲突很感兴趣。他会给出一个正整数序列value[]。 自然,B君会把这些数据存进hash池。第value[k]会被存进(k%p)这个池。这样 ...
分类:
其他好文 时间:
2018-03-18 22:31:24
阅读次数:
232