Java 如何从给定的四个数字中生成一个唯一的数字,并从生成的唯一数字中获取这些给定的数字?

Java 如何从给定的四个数字中生成一个唯一的数字,并从生成的唯一数字中获取这些给定的数字?,java,memory,map,key,Java,Memory,Map,Key,我在java中使用了一个映射(字符串、整数)。 键是由四个给定数字的字符串串联生成的 给定数字1,最多6位, 给定数字2,最多4位, 给定数字3,最多4位, 给定数字4,最多4位 由于内存消耗,我想在java中使用Map(Integer,Integer)。 现在,如何从给定的四个数字生成唯一的数字 那么如何从这个生成的数字中得到这四个数字呢 有没有一种有效的(内存、cpu)方法可以做到这一点?Integer.Max是2147483647(10位),在您的示例中,您希望输入6+4+4+4位 所以你

我在java中使用了一个映射(字符串、整数)。 键是由四个给定数字的字符串串联生成的

给定数字1,最多6位, 给定数字2,最多4位, 给定数字3,最多4位, 给定数字4,最多4位

由于内存消耗,我想在java中使用Map(Integer,Integer)。 现在,如何从给定的四个数字生成唯一的数字 那么如何从这个生成的数字中得到这四个数字呢


有没有一种有效的(内存、cpu)方法可以做到这一点?

Integer.Max是2147483647(10位),在您的示例中,您希望输入6+4+4+4位 所以你的最大值要大得多,最大整数是10位数,而不是18位数


因此,不可能简单地将映射从map替换为map

当您最多说6位数字时,您是说正好是6位数字吗?
0
有效吗?是,0可以有效。第一个给定的数字保存置换数,它可以从0开始,最多100000次置换。我认为第四个给定的数字存储在最后4位。第二个给定的数字可以保存在最后8、7、6和5中。数字。如果你想提高内存效率,我会使用
TLongIntHashMap
,谢谢。我听说过特洛夫。我想知道是否有其他不使用Long的方法。番石榴有一个基于原语的集合。可以使用Map。