我有一个像这样的哈希表,
HashTable ht = { (1, 1), (2, 1), (3, 1) }
现在,我像 Integer foo = Integer(1) 那样实现它,并像这样声明哈希表,
HashTable ht = { (foo, foo), (2, foo), (3, foo) }
现在,据我了解 this , 它将减少 JVM 使用的堆空间。这是正确的吗? 另一点是,在 C 中,我通常使用这样的结构,
HashTable ht = { (1, mem), (2, mem), (3, mem) }
{ where mem is memory location (say 10) of 1 }
然后使用位置访问值。现在,如果 mem 值小于 Int(比如 Byte),我可以节省空间。但是,我不明白如何在 Java 中实现它。 或者有没有其他方法可以减少哈希表的空间? (意味着通过减少以 Java 的方式重复存储相同的对象)。
最佳答案
Integer
最节省空间的方法是使用 Integer.valueOf()
,它使用享元设计模式来减少小值的内存使用。 -128 和(通常)127 之间的值不需要额外的内存。
关于对象引用的 Java 哈希表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661374/