面试必问的HashMap
我们在开发的过程中经常会用到HashMap来保存键值对,实现的主要思路,就是通过hash函数确定对应的key应该放在数组的哪个位置。
当要放的位置发生冲突时,就需要解决冲突,一般情况下有两种如下方法
- 开放寻址法(当要放的位置上有值的时候,依次找数组的下一个位置,看是否有空位)
- 链表法(用链表存储发生冲突的元素)
当我们想要保证放入的key有序时,我们就可以用LinkedHashMap,LinkedHashMap=哈希表+双向链表
哈希算法在Java中的应用有集合类HashMap,HashSet等,本质上就是用来保存映射关系的
但保存映射关系的数据结构不只有哈希表,数组也可以。计数排序不就用数组的下标i以及其对应的值a[i]来表示值为i的数有a[i]个
输出频率最高且最先出现的字符
假设有一个字符串,字符串内部的所有字符都是在ascii编码的范围内,编码求出字符串中出现频率最高的字符,如果频率最高的字符有几个字符出现的频率一样,则输出最先出现的字符。
如输入串为 “hello world, every body!”,则输出频率最高且最先出现的字符
本文标题:哈希:更高效的查找!
本文链接:https://blog.quwenai.cn/post/8843.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。







还没有评论,来说两句吧...