Comparar dos mapas de teclas y de retorno booleano

NewUser:

Tengo dos mapas y tengo que comprobar si ambos tienen las mismas claves y el mismo número de claves o no y devolver un valor lógico. Me gustaría utilizar corrientes para esto y he conseguido es mediante la creación de otra lista

mapA
.entrySet()
.stream()
.filter(entry -> mapB.containsKey(entry.getKey()))
.collect(
    Collectors.toMap(Entry::getKey, Entry::getValue));

Pero mi pregunta es que puedo hacerlo en una sola línea que no se crearía otra lista pero devolver un valor lógico si si son iguales o no.

rgettman:

No hay necesidad de utilizar corrientes para esto. Sólo obtener conjuntos y el uso clave de los mapas equals, que se especifica en Setla siguiente forma :

Devuelve truesi el objeto especificado es también un conjunto, los dos conjuntos tienen el mismo tamaño, y cada miembro del conjunto especificado está incluido en este conjunto de [.]

Map<String, Integer> m1 = new HashMap<>();
m1.put("a", 10);
m1.put("b", 10);
m1.put("c", 10);

Map<String, Integer> m2 = new HashMap<>();
m2.put("c", 20);
m2.put("b", 20);
m2.put("a", 20);

System.out.println(m1.keySet().equals(m2.keySet()));  //true

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=314343&siteId=1
Recomendado
Clasificación