其他分享
首页 > 其他分享> > 比HashMap更快的查询

比HashMap更快的查询

作者:互联网

比HashMap更快的查询

后面会附上代码,先说一下逻辑

用到了一个树,我也不知道以前有没有出现过,但我感觉应该有,就先叫他方树吧:

在这里插入图片描述

就是图中这样,肯定有大佬已经看懂了
横向是0-9的一个数组,纵向是数组0代表一个0-9的数组,向下延伸,上图
在这里插入图片描述
就是这样一个结构,每一次递归向下拿,每一次去根据key转成int数组的当前数字,去数组中直接取,也就是最多也超不过10次的io 就可以取到数组中指定的位置,
然后直接从数组中把value拿出来,然后再递归取到key对应的数据(hash碰撞使用hashmap方法解决),这个逻辑想象中一定是比hashmap快的对吧

好了,起始我想问个问题,他并不比hashmap快,甚至慢了很多,说说具体原因,
当我将所有数据put进去以后,就会导致我的hashcode操作性能急剧下降,我打断点看占用是3.5G内存,我电脑是32G内存,比如和hashmap执行同一个函数,hash(),向hashmap写入一千万数据执行是600毫秒,向我的map中写入一千万数据,在执行这个函数,耗费1100毫秒,hashmap存储一千万数据用了1.9G内存,现在还没找到慢的原因,所以来问一下各位大佬,附上代码

https://gitee.com/dianpingche/map.git

里面有两套代码,类名是Demo的类是运行上述代码的,
另一套代码就是把key分割,然后存在node中,这个顺序查询确实是比hashmap顺序查询快的

标签:key,hashmap,代码,一千万,查询,更快,数组,HashMap
来源: https://blog.csdn.net/a731531230/article/details/121681194