它使用了很多内存的数组哈希集

时间:2013-02-20 22:11:16

标签: java arrays performance memory hashset

我做了一个名为randomQueue的数据类型,它将任何对象排入队列,并且它随机地从它中出列我使用数组作为基本数据类型,所以我的问题是需要更多的内存hashset或数组,然后我实现这个因为我会做一个随机物品生成器 api应该是以下

enqueue(Item item)
dequeue()
isEmpty()
size()
private resize()
private shrink()

运行时间应摊销 我认为两者的性能在两个实现中应该是相同的,但我想知道内存是什么,有没有办法计算我的程序使用的内存而不是计算代码内存使用的每一行? PS我使用java。

2 个答案:

答案 0 :(得分:1)

假设一个32位HotSpot VM,java.util.HashSet每个元素大约需要32个字节,一个数组大约需要4个。如果你重新实现其中一个结构,当然这些数字不是'对你有用。

答案 1 :(得分:0)

这两种不同的结构对于内存消耗确实没有明显的优势。对于数组上的检索,哈希集通常会更快,因为在数组中,您必须遍历所有项目,直到找到要查找的项目并对哈希集进行分组。