比如有 4, 12两个数字,
我需要做一个Map的Key,现在我用笨方法,将4与12中间加一个_,做成一个String的key
如:
String key=4+"_"+12;
Map成了 Map<String,Object>我始终觉得可以做的更好,更高效率的数学方法(应该不是String类型的key了吧)
有没有什么好办法呢?
我需要做一个Map的Key,现在我用笨方法,将4与12中间加一个_,做成一个String的key
如:
String key=4+"_"+12;
Map成了 Map<String,Object>我始终觉得可以做的更好,更高效率的数学方法(应该不是String类型的key了吧)
有没有什么好办法呢?
如果不需要还原的情况下呢?
如何用两个数字做出一个key?
我说的维护不是针对应用,而是说代码的维护,过半年再看,string的方法一目了然,但是数学方法说不定自己都看不明白了。
比如说 a * 23 + b,但是你要保证其唯一性。2. 如果两个数字不限制,那么你那个字符串的做法,其实是个相当不错的办法了。
合并为long,long x = (((long)a) << 31) | ((long)b);
拆分 a = (int)(x >> 31); b = (int)(x & 0x00000000FFFFFFFF);
如果第二个数字是在一定范围内的,可以把第一个数字乘以这个范围
如第二个数在10000以内
int key = n1 * 10000 + n2;
还原就不用说了吧
哪里不一样了,搜的时候一样搜,TreeMap排序也照样排啊
个人觉得转成字符串好些
但如果经常要转换
可以考虑把它用一个类封装起来
再得载hashCode与equals方法
可以这样定义
String x=4+"";
这样获取的时候 可以用 Integer.parseInt(x)获取到 int型的 4
PS:没明白楼主的用意