2014-07-22 2 views
0

두 개의지도가 있고 두 번째지도를 사용하여 첫 번째지도 값을 변환하고 싶습니다.변형 Guava를 사용하여 다른지도를 사용하여지도

Map<T, Double> firstMap = Maps.newHashMap(with some value...); 
Map<T, Double> secondMap = Maps.newHashMap(with some value...); 

Map<T, Double> finalMap = Maps.newHashMap(); 
for(Entry<T, Double> entry : firstMap.entrySet()) 
{ 
    finalMap.put(entry.getKey(), entry.getValue() * secondMap.get(entry.getKey())); 
} 

첫 번째 맵을 다음과 같은 방식으로 변환하려고합니다.

첫 번째 맵의 요소 T 값에 두 번째 맵의 값이 곱해 져야합니다. 첫 번째지도는 첫 번째지도의 하위 집합입니다.

감사합니다. 구아바를 사용

+0

구체적인 질문을하시기 바랍니다. 우리에게 당신의 코드를 보여주고 어떤 문제가 있는지 알려주십시오. – Seelenvirtuose

+0

문제를 설명하는 코드를 찾으십시오. – user3222372

+0

아직도 문제가 무엇인지 알려주지 않습니다. 위의 코드를 실행할 때 입력 내용, 예상 출력 및 실제 출력은 무엇입니까? –

답변

1

:

public static final void main(final String... args) { 

    final Map<String, Integer> map1 = ImmutableMap.of("key0", 2, "key1", 3); 

    final Map<String, Integer> map2 = ImmutableMap.of("key0", 2, "key1", 3, "key2", 3); 

    final Map<String, Integer> transformed = Maps.transformEntries(map1, 
      new EntryTransformer<String, Integer, Integer>() { 

       @Override 
       public Integer transformEntry(final String key, final Integer value) { 

        return map2.get(key) * value; 
       } 
      }); 

    //result {key0=4, key1=9} 
    System.out.println(transformed); 
} 
관련 문제