Tengo dos HashMaps: FOO & BAR.Comparación de HashMaps en Java
HashMap FOO es un superconjunto de HashMap BAR.
¿Cómo averiguo qué 'claves' faltan en HashMap BAR (es decir, existe en FOO pero no en BAR)?
Tengo dos HashMaps: FOO & BAR.Comparación de HashMaps en Java
HashMap FOO es un superconjunto de HashMap BAR.
¿Cómo averiguo qué 'claves' faltan en HashMap BAR (es decir, existe en FOO pero no en BAR)?
Si está utilizando google-collections (y de manera realista, creo que debería estar en la ruta de clase de más o menos cada proyecto Java no trivial) es simplemente:
Set<X> missing = Sets.difference(foo.keySet(), bar.keySet();
Set missing = new HashSet(foo.keySet());
missing.removeAll(bar.keySet());
+1 para la fabricación de un nuevo conjunto. foo.keySet(). removeAll() realmente modificará el mapa foo. – Jherico
También puede usar 'MapDifference mapDiff = Maps.difference (FOO, BAR);' y examinar el objeto resultante para obtener una descripción completa de cómo difieren los mapas. –
Oh wow. No he mirado MapDifference antes, gracias Kevin. – Cowan