Nih*_*rma 7 java memory hashmap
我害怕downvotes.无论如何,就像ArrayList有一个连续的内存分配一样,LinkedList会有一个随机内存分配,HashMap如何占用内存?它是否也在内存中随机存取?我可以简要介绍一下map的存储桶和内部的LinkedLists如何位于内存中吗?
我希望这不是一个问题.没有找到关于Map的内存分配图的大量信息.
编辑:我提出的问题与调试/分析无关.它只是关于HashMap如何适应内存.我不清楚它.
这是两者的结合.
有一个支持的底层连续数组HashMap.这个数组的元素实际上是单链表.每次向地图添加键值对时,都会对键进行哈希处理,并将链接列表条目添加到后备阵列的相应插槽中(即与键的哈希值对应的插槽).
例如,地图映射k到v可能是这样的:
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+-X-+-X-+-?-+-X-+-X-+-X-+-X-+-X-+
?
?
+---+
| k |
| - |
| v |
+---+
还有很长的"表"是背地图,支持特定的条目k至- v配对.
您可能最好自己查看HashMap源代码.
| 归档时间: |
|
| 查看次数: |
5110 次 |
| 最近记录: |