2012-12-31 3 views
1

어딘가에 표시 될 수있을 정도로 자주 나옵니다. 그러나 더 이상 검색 할 방법을 모르겠습니다.키가있는지도의 요소가 변경되지 않았습니다. B

키가 세트 B가 아닌지도에서 값을 수정하고 싶습니다. 가장 좋은 방법은 무엇입니까? 다음은 내가 생각한 것입니다.

Map<X,Y> map = ... 

Set<X> B = ... 

for(Map.Entry<X, Y> entry : map.entrySet()) { 

    if(! B.contains(entry.getKey()) { 
     entry.setValue(someMethod(entry.getValue); 

    } 
} 

답변

1

현재 잘 수행해야하는 사항. 내가 말을하지만 나는이 일을 한 경우, 나는 현재의 접근 방식을 취할 것

Map<X,Y> newMap = new HashMap<X,Y>(map); 
newMap.keySet().removeAll(B); // remove keys in the set B 

for (Map.Entry<X, Y> entry : newMap.entrySet()) { 
    entry.setValue(someMethod(entry.getValue()); 
} 

map.putAll(newMap); 

: 다른 방법으로, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다.

관련 문제