我想基于数字创建评级映射。应为每个“原始”号码分配一堆“目标”号码
与此类似:
if (i = 2) return 3;
if (i = 3) return 5;
if (i = 4) return 7;
等等。我怎样才能最好地编写这些映射,而不必重复创建'if-return`语句?
答案 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.