用于生成16位数到原始数的Java程序

时间:2016-12-03 10:33:21

标签: java

我有一个要求,就像我输入4位数字1101然后我需要生成16位数字(1234567891234567)。当输入生成的16位数字时,我需要显示输入的数字1101.如何在java中执行此操作

1 个答案:

答案 0 :(得分:1)

定义Bidirectinal Map

class BiDirMap<K,V> extends HashMap<K, V>{

    Map<V,K> reversedMap = new HashMap<V,K>();

    @Override
    public V put(K key, V value) {
        // TODO Auto-generated method stub
        reversedMap.put(value, key);
        return super.put(key, value);
    }

    public K getKeyFromValue(V value){
        return reversedMap.get(value);
    }
}

使用它:

Map<Long, Long> myFoo = new BiDirMap<Long, Long>();

添加以下元素:

myFoo.put(1111, getNumberFor(1111));
myFoo.put(122, getNumberFor(122));

并按以下值查找:

myFoo.getKeyFromValue(1234567891234567);

请注意像Guava这样的第三方库也会这样做