es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fusiona dos mapas de diferentes tipos de objetos en uno solo, completando el valor de los objetos en el mapa 1.

¿Es posible combinar dos mapas con las mismas claves pero diferentes objetos y obtener finalmente un mapa completo con los datos del segundo mapa?

“`java
public class Employee {
private String firstName;
private String lastName;
private Address address;
}

public class Address {
private String city;
private String country;
private String street;
}

Map<string, employee=""> map1 = new HashMap<>();
Map<string, address=""> map2 = new HashMap<>();

// Necesitamos el mapa 3 con el valor en el objeto Employee completado con la dirección.

Map<string, employee=""> map3 = new HashMap<>();
“`</string,></string,></string,>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible fusionar dos mapas con las mismas claves pero objetos diferentes y finalmente obtener un mapa completo de datos del segundo mapa. En este caso, podemos fusionar el mapa1 y el mapa2 en el mapa3 iterando sobre las claves en el mapa1 y verificando si también existen en el mapa2.

    Si la clave existe en ambos mapas, podemos crear un nuevo objeto Employee fusionando el objeto Employee en el mapa1 con el objeto Address en el mapa2. Esto se puede hacer utilizando los setters del objeto Address de Employee. Finalmente, podemos agregar el objeto Employee completo al mapa3.

    Aquí hay un ejemplo de implementación:

    for (String key : map1.keySet()) {
       if (map2.containsKey(key)) {
          Employee employee = map1.get(key);
          Address address = map2.get(key);
          employee.setAddress(address);
          map3.put(key, employee);
       }
    }
    

    Nota: Esto asume que todas las claves en el mapa1 también existen en el mapa2. Si este no es el caso, se necesitará un manejo de errores adicional.

Comments are closed.