2010-02-18 7 views
6

두 개의 HashMaps : FOO & BAR이 있습니다.Java에서 HashMaps 비교

HashMap FOO는 HashMap BAR의 상위 집합입니다.

HashMap BAR에서 누락 된 '키'(즉 FOO에 있지만 BAR에없는 키)는 어떻게 알 수 있습니까?

답변

7

당신이 사용하는 경우 google-collections (현실적으로 나는 다소 아닌 모든 사소한 자바 프로젝트의 클래스 경로에 있어야한다고 생각)은 단지 :

Set<X> missing = Sets.difference(foo.keySet(), bar.keySet(); 
+0

'MapDifference mapDiff = Maps.difference (FOO, BAR);'를 사용하고 결과 객체를 검사하여 맵의 차이점에 대한 전체 설명을 얻을 수도 있습니다. –

+0

와우. 전에 MapDifference를 보지 않았습니다. Kevin에게 감사드립니다. – Cowan

13
Set missing = new HashSet(foo.keySet()); 
missing.removeAll(bar.keySet()); 
+1

하나를 새로 만들기위한 세트. foo.keySet(). removeAll()은 실제로 foo 맵을 수정합니다. – Jherico