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

Java 如何在不同的数字之间创建映射?,java,Java,我想创建一个基于数字的评分映射。每个“原始”编号都应分配一组“目标”编号 与此类似: if (i = 2) return 3; if (i = 3) return 5; if (i = 4) return 7; 等等。我如何才能最好地编写这类映射,而不必重复创建“if return”语句?Map mappings=new HashMap(); Map<Integer, Integer> mappings = new HashMap<Integer, Integer>

我想创建一个基于数字的评分映射。每个“原始”编号都应分配一组“目标”编号

与此类似:

 if (i = 2) return 3;
 if (i = 3) return 5;
 if (i = 4) return 7;
等等。我如何才能最好地编写这类映射,而不必重复创建“if return”语句?

Map mappings=new HashMap();
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));
put(2,3); put(3,5); put(4,7); System.out.println(mappings.get(2)); System.out.println(mappings.get(3)); System.out.println(mappings.get(4));
对于您的问题,有两种主要解决方案

第一种方法是把你给出的三对数字放到地图上。映射将一个键与一个值相关联,因此您可以将每一对放入映射中

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

只要调用这个函数,您就会得到正确的输出。例如
myFunction(3)
将返回5。

您是否看到
java.util.Map
?例如,
Map
可能会有所帮助。否则会出现一个
case
语句。使用映射来存储映射。使用Switch-case语句如何?如果您只处理整数,可以保持简单:只需使用一个数组,其中arr[i]存储我应该映射到的值。
返回i+i-1如果模式保持不变:)
int myFunction(int value) {
    return 2*value-1;
}