java - 请教当HashMap中键值对太多怎么办。

查看:196
本文介绍了java - 请教当HashMap中键值对太多怎么办。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问题描述:

需要用第三方API请求数据到本地,每条数据中的一个字段,我们叫它itemID,在本地作为唯一性的ID存储,不同条数据中的itemID可能相同,所以,需要对数据字段进行加和。就用Map存储了,itemID为key,value为每条数据抽象成的本地对象。

问题来了,当key不停的增加,HashMap中的entry数目太大怎么办?

请各位大大指教。

解决方案

最直观的一个想法。 一级map太大,你可以用多级map。 比如按key做一个sharding,用多个map,甚至可以多个层级map,像个树一样。

这样可以解决单个map中entry过多的问题。 但是无法解决占用内存过大的问题。 因为拆分为多个map或者树形结构,一样是都在内存中。

内存问题的话没办法,把它改为外部的缓存中吧。

这篇关于java - 请教当HashMap中键值对太多怎么办。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆