Intersección de dos mapas

Escribe un método que reciba dos mapas diferentes. En cada uno, conserva únicamente las claves que existan en ambas entradas, manteniendo los valores originales de esa entrada. Devuelve los dos mapas filtrados en el mismo orden que los argumentos.

Ejemplos

Program.intersection(Map.of("a", 5, "b", 13, "c", 7), Map.of("b", 5, "c", 8, "d", 91, "e", 99)); // new Map[]{Map.of("b", 13, "c", 7), Map.of("b", 5, "c", 8)}

Program.intersection(Map.of("a", 5, "b", 13, "c", 7), Map.of("c", 9, "d", 8)); // new Map[]{Map.of("c", 7), Map.of("c", 9)}

Program.intersection(Map.of("a", 1, "b", 34), Map.of("c", 9, "d", 8)); // new Map[]{Map.of(), Map.of()}

Notas

Si no hay claves en común, devuelve dos mapas vacíos.