简体   繁体   English

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

[英]How to generate an unique number from a given four numbers and getting these given numbers back from generated unique number?

I was using a Map(String,Integer) in java. 我在Java中使用Map(String,Integer)。 Keys were generated from string concatenation of four given numbers. 密钥是由四个给定数字的字符串连接生成的。

givenNumber1 at most 6 digits, givenNumber2 at most 4 digits, givenNumber3 at most 4 digits, givenNumber4 at most 4 digits. 给定编号1最多6位,给定编号2最多4位,给定编号3最多4位,给定编号4最多4位。

Because of memory cost, I want to use Map(Integer,Integer) in java. 由于内存成本,我想在Java中使用Map(Integer,Integer)。 Now how can I generate an unique number from given four numbers and then how to get back these four numbers from this generated number? 现在如何从给定的四个数字中生成唯一数字,然后如何从生成的数字中获取这四个数字?

Is there an efficient(memory,cpu) way to do it? 有一种有效的方法(内存,CPU)吗?

Integer.Max is 2,147,483,647(10 digits) and in your example you want to put 6 + 4 + 4 + 4 digits so your max number is much bigger that max int 10 digits vs 18 digits. Integer.Max为2,147,483,647(10位数字),在您的示例中,您希望输入6 + 4 + 4 + 4位数字,因此您的最大数字比最大int 10位数字对18位数字大得多。

So it's impossible to simply replace you map from Map < String, Integer > to Map < Integer, Integer> 因此,不可能简单地将地图从Map <String,Integer>替换为Map <Integer,Integer>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM