草庐IT

java - HashMap 是如何占用内存的?

我害怕投反对票。无论如何,就像ArrayList会有连续的内存分配一样,LinkedList会有随机的内存分配,HashMap是如何占用内存的呢?它是否也需要内存中的随机block?能否简要介绍一下map的bucket和里面的LinkedLists在内存中是如何定位的内存图?我希望这不是一个bs问题。没有找到很多关于Map的内存分配图的资料。编辑:我提出的问题与调试/分析无关。这只是关于HashMap如何适合内存。我不清楚。 最佳答案 这是两者的结合。有一个底层的连续数组支持HashMap。这个数组的元素实际上是单链表。每次向映射中

java - HashMap 是如何占用内存的?

我害怕投反对票。无论如何,就像ArrayList会有连续的内存分配一样,LinkedList会有随机的内存分配,HashMap是如何占用内存的呢?它是否也需要内存中的随机block?能否简要介绍一下map的bucket和里面的LinkedLists在内存中是如何定位的内存图?我希望这不是一个bs问题。没有找到很多关于Map的内存分配图的资料。编辑:我提出的问题与调试/分析无关。这只是关于HashMap如何适合内存。我不清楚。 最佳答案 这是两者的结合。有一个底层的连续数组支持HashMap。这个数组的元素实际上是单链表。每次向映射中

Java 8 hashmap 高内存使用率

我使用hashmap来存储QTable以实现强化学习算法。我的hashmap应该存储15000000个条目。当我运行我的算法时,我看到进程使用的内存超过1000000K。当我计算内存时,我希望它使用不超过530000K。我试着写一个例子,我得到了同样高的内存使用率:publicstaticvoidmain(String[]args){HashMapmap=newHashMap(16_000_000,1);for(inti=0;i我的内存计算:每个条目集是32个字节容量为15000000HashMap实例使用:32*SIZE+4*CAPACITY内存=(15000000*32+15000

Java 8 hashmap 高内存使用率

我使用hashmap来存储QTable以实现强化学习算法。我的hashmap应该存储15000000个条目。当我运行我的算法时,我看到进程使用的内存超过1000000K。当我计算内存时,我希望它使用不超过530000K。我试着写一个例子,我得到了同样高的内存使用率:publicstaticvoidmain(String[]args){HashMapmap=newHashMap(16_000_000,1);for(inti=0;i我的内存计算:每个条目集是32个字节容量为15000000HashMap实例使用:32*SIZE+4*CAPACITY内存=(15000000*32+15000

c++ - 我什么时候应该使用 unordered_map 而不是 std::map

我想知道在哪种情况下我应该使用unordered_map而不是std::map。每次我不注意map中元素的顺序时,我都必须使用unorderd_map? 最佳答案 map通常使用red-blacktree实现.元素已排序。内存使用量相对较小(哈希表不需要额外的内存)。相对快速的查找:O(logN)。unordered_map通常使用hash-table实现.元素未排序。需要额外的内存来保存哈希表。快速查找O(1),但恒定时间取决于hash-function这可能相对较慢。另请记住,您可以与Birthdayproblem会面。.

c++ - 我什么时候应该使用 unordered_map 而不是 std::map

我想知道在哪种情况下我应该使用unordered_map而不是std::map。每次我不注意map中元素的顺序时,我都必须使用unorderd_map? 最佳答案 map通常使用red-blacktree实现.元素已排序。内存使用量相对较小(哈希表不需要额外的内存)。相对快速的查找:O(logN)。unordered_map通常使用hash-table实现.元素未排序。需要额外的内存来保存哈希表。快速查找O(1),但恒定时间取决于hash-function这可能相对较慢。另请记住,您可以与Birthdayproblem会面。.

c++ - unordered_map 真的是无序的吗?

我对“unordered_map”这个名字感到很困惑。顾名思义,键根本没有排序。但我一直认为它们是按哈希值排序的。还是说错了(因为名字暗示它们不是有序的)?或者换个说法:这是这个typedefmap>HashMap;与templatestructHashComp{booloperator()(v1)()(v2);}};同typedefunordered_mapHashMap;?(好吧,不完全是,STL会在这里提示,因为可能有键k1,k2并且既不是k1multimap并覆盖相等检查。)或者再次不同:当我遍历它们时,我可以假设键列表是按它们的哈希值排序的吗? 最

c++ - unordered_map 真的是无序的吗?

我对“unordered_map”这个名字感到很困惑。顾名思义,键根本没有排序。但我一直认为它们是按哈希值排序的。还是说错了(因为名字暗示它们不是有序的)?或者换个说法:这是这个typedefmap>HashMap;与templatestructHashComp{booloperator()(v1)()(v2);}};同typedefunordered_mapHashMap;?(好吧,不完全是,STL会在这里提示,因为可能有键k1,k2并且既不是k1multimap并覆盖相等检查。)或者再次不同:当我遍历它们时,我可以假设键列表是按它们的哈希值排序的吗? 最

c++ - 在 unordered_map 中使用元组

我想在我的unordered_map中使用由int、char、char组成的元组。我是这样做的:#include#include#include#include#includeusingnamespacestd;tuplekk;unordered_mapmap;intmain(){map[1,"c","b"]=23;return0;}但这给了我以下错误:map.cpp:9:21:error:type/valuemismatchatargument1intemplateparameterlistfor‘templateclassstd::unordered_map’map.cpp:9:2

c++ - 在 unordered_map 中使用元组

我想在我的unordered_map中使用由int、char、char组成的元组。我是这样做的:#include#include#include#include#includeusingnamespacestd;tuplekk;unordered_mapmap;intmain(){map[1,"c","b"]=23;return0;}但这给了我以下错误:map.cpp:9:21:error:type/valuemismatchatargument1intemplateparameterlistfor‘templateclassstd::unordered_map’map.cpp:9:2