如何在不同的数字之间创建映射?

时间:2014-06-12 12:21:54

标签: java

我想基于数字创建评级映射。应为每个“原始”号码分配一堆“目标”号码

与此类似:

 if (i = 2) return 3;
 if (i = 3) return 5;
 if (i = 4) return 7;

等等。我怎样才能最好地编写这些映射,而不必重复创建'if-return`语句?

2 个答案:

答案 0 :(得分:6)

Map<Integer, Integer> mappings = new HashMap<Integer, Integer>();
mappings.put(2,3);
mappings.put(3,5);
mappings.put(4,7);
System.out.println(mappings.get(2));
System.out.println(mappings.get(3));
System.out.println(mappings.get(4));

答案 1 :(得分:2)

对于您的问题,有两个主要解决方案。

第一个是获取您给出的三对数字并将它们放入Map中。地图将键与值相关联,因此您可以将每个对放入地图

HashMap<Integer, Integer> myMap = new HashMap();
myMap.put(myKey, myValue);

要从地图中获取myValue,您可以通过myMap.get(myKey)

访问它

另一种方法是注意你提供的数字遵循一个功能。 2X-1。您可以在代码中创建一个函数来模仿此行为

int myFunction(int value) {
    return 2*value-1;
}

只需调用此函数即可获得正确的输出。例如,myFunction(3)将返回5.