【发布时间】:2014-05-12 09:35:38
【问题描述】:
我在 java 中使用了 Map(String,Integer)。 键是由四个给定数字的字符串连接生成的。
givenNumber1 最多 6 位数字, givenNumber2 最多 4 位数字, givenNumber3 最多 4 位数字, givenNumber4 最多 4 位。
由于内存成本,我想在 java 中使用 Map(Integer,Integer)。 现在如何从给定的四个数字生成一个唯一的数字 那么如何从这个生成的数字中取回这四个数字呢?
有没有一种高效的(内存,cpu)方法来做到这一点?
【问题讨论】:
-
当您说最多 6 位时,您的意思是正好 6 位吗?
0有效吗? -
是的 0 可以是有效的。第一个给定数字包含排列数,它可以从 0 开始到最多 100000 个排列。我认为第四个给定数字存储在最后 4 位数字中。第二个给定号码可以容纳在最后 8、7、6 和 5 位。这样下去,我需要Long。
-
如果你想提高内存效率,我会使用
TLongIntHashMap。 -
谢谢。我听说过特罗夫。我想知道不使用 Long 的任何其他方式。
-
Guava 有一个基于原语的集合。