2014-06-12 2 views
2

숫자를 기준으로 등급에 대한 매핑을 만들고 싶습니다. 등다른 숫자간에 매핑을 만드는 방법은 무엇입니까?

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

그리고 각 "원래"수는 이것에

유사 "대상"숫자의 무리를 할당 받아야합니다. 반복적으로 'if-return '문을 작성하지 않고 어떻게 이런 종류의 매핑을 작성할 수 있습니까?

+2

'java.util.Map'을 보았습니까? 예를 들어'Map '가 도움이 될 수 있습니다. 그렇지 않으면'case' 문이 있습니다. – vikingsteve

+3

맵을 사용하여 맵핑을 저장하십시오. – Jens

+0

Switch Case 문을 사용하는 것은 어떻습니까? –

답변

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)); 
2

문제의 해결 방법에는 두 가지가 있습니다.

첫 번째는 3 쌍의 숫자를 가져 와서지도에 넣는 것입니다. 지도는 값과 키를 연결합니다, 그래서 당신은

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를 반환합니다.

관련 문제