开发者社区> 问答> 正文

当HashMap中键值对太多怎么办?

问题描述:
需要用第三方API请求数据到本地,每条数据中的一个字段,我们叫它itemID,在本地作为唯一性的ID存储,不同条数据中的itemID可能相同,所以,需要对数据字段进行加和。就用Map存储了,itemID为key,value为每条数据抽象成的本地对象。
问题来了,当key不停的增加,HashMap中的entry数目太大怎么办?

展开
收起
蛮大人123 2016-03-11 15:43:32 3109 0
3 条回答
写回答
取消 提交回答
  • 如果超出初始容量*负载因子,会进行自动扩容操作。在并发模式下,发注意HashMap不是线程安全,会出现一些意料之外的情况。
    2019-07-17 18:59:25
    赞同 展开评论 打赏
  • 会自动分配空间重建
    2019-07-17 18:59:25
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    最直观的一个想法。 一级map太大,你可以用多级map。 比如按key做一个sharding,用多个map,甚至可以多个层级map,像个树一样。
    这样可以解决单个map中entry过多的问题。 但是无法解决占用内存过大的问题。 因为拆分为多个map或者树形结构,一样是都在内存中。
    内存问题的话没办法,把它改为外部的缓存中吧。

    2019-07-17 18:59:25
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载