You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何TreeMap内存占用与HashMap相当?理论与测试不符求解

TreeMap 与 HashMap 内存占用疑惑

传统观点认为TreeMap是比HashMap内存效率更高的数据结构[1,2,3]

TreeMap相比HashMap更节省内存,因为它仅使用存储元素所需的内存,而HashMap使用连续内存区域

但测试结果却与之相反[例如4]。

例如,以下是向HashMap和TreeMap插入100万条键值对的测试结果,键为long类型,值为String类型,L为String的长度。

HashMap(L=100,有序插入)

N(数量)time(ms)(耗时,毫秒)memory (bytes)(内存,字节)
100,0009721,048,640
200,00047242,097,216
300,00088762,097,216
400,0001,42484,194,368
500,0002,127104,194,368
600,0002,985124,194,368
700,0004,041144,194,368
800,0005,186168,388,672
900,0006,478188,388,672
1,000,0007,971208,388,672

TreeMap(L=100,有序插入)

N(数量)time(ms)(耗时,毫秒)memory (bytes)(内存,字节)
100,00011820,800,048
200,00058541,600,048
300,0001,23962,400,048
400,0002,16683,200,048
500,0003,415104,000,048
600,0004,910124,800,048
700,0006,668145,600,048
800,0008,707166,400,048
900,00011,059187,200,048
1,000,00013,648208,000,048

我尝试了不同的L值(最低为L=1)以及随机插入顺序,得到的结果一致——TreeMap占用的内存与HashMap相当。

从理论上讲,由于HashMap的加载因子为0.75(意味着至少25%的空间被浪费)[5],TreeMap应该比HashMap节省至少约25%的内存(比如当L=1时)。

这是为什么?有人能解释吗?


内容的提问来源于stack exchange,提问作者morpheus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:34:59