2014-11-02 3 views
0

BiMap의 .inverse() 함수를 사용하지 않고 어떻게 역 매핑을 수행 하시겠습니까?BiMap없이 매핑 및 역 매핑

가 나는 주어졌다 :

public static Map<String, Set<String>> reverseMapping(Map<String, String> mapping) 

나는 이런 식으로 뭔가를 시도했지만 어디서든 저를하지 않았다.

 Map <String, Set<String>> remap = new HashMap<String, Set<String>>(); 
     for (String name : mapping.keySet()) { 
      String color = mapping.get(name); 
      if(remap.containsKey(color)){ 
      ...; 
      } 
      else{ 
       ... 
      } 


} 
     return remap; 

}

+0

이 문제? –

+0

이 문제는 해결하기가 어렵지 않습니다. 루이에 동의하고 코드를 보여 주면 붙잡을 때 도와 드리겠습니다 – Michael

+0

@ 마이클 일부 코드로 편집을 추가했습니다 – Peter

답변

1

당신은 당신이 당신의 다시 매핑 이미 색상와 설정이 포함되어 있는지 확인해야 이제 멀리

public static Map<String, Set<String>> reverseMapping(Map<String, String> mapping) 
{ 
    // slight change in the next line 
    Map <String, Set<String>> remap = new HashMap<String, Set<String>>(); 
    for (String name : mapping.keySet()) { 
     String color = mapping.get(name); 
     // Until here its ok, see comment below 
    } 
    // added the return 
    return remap; 
} 

아니에요. 그렇다면 이름을에 추가하십시오. 새 설정을 만들 필요가 없습니다 경우에 이름을 추가하고이 도움이 다시 매핑에

희망을 새로운 세트를 넣어

우리는 당신이 해결하려고 작성한 몇 가지 코드를 볼 수
+0

만약 내가 (remap.containsKey (color)) remap.put (key, value) 그러나 나는 그 값을 무엇을 넣을 지 모르겠다. – Peter

+0

당신은 먼저 세트가 이미있는 경우 세트를 가져와야합니다. tmp = remap.get (color); 그런 다음 tmp.add (name); 색상 세트가 아직없는 경우 케이스를 신중하게 다루십시오! – Michael

+0

내 편집 – Peter