Dado un mapa, la tarea es clonar ese mapa.
Las siguientes son las 5 formas diferentes de clonar un mapa en Java.
Ejemplo:
{1=Geeks, 2=For, 3=Geeks}
1. Cree un objeto para el mapa de clase.
2. Coloque los elementos en el mapa usando el método put().
3. Vuelva a crear otro objeto para el mapa de clases.
4. Ahora, finalmente, itere el mapa y llame al método put para clonar el mapa inicial.
A continuación se muestra la implementación del enfoque anterior:
Implementación:
// Program to clone a Map in Java // Naive Method import java.util.*; class GFG { public static void main(String[] args) { // Creating an object for class Map Map<Integer, String> hash_Map = new HashMap<Integer, String>(); // putting elements into the map hash_Map.put( 1 , "Geeks" ); hash_Map.put( 2 , "For" ); hash_Map.put( 3 , "Geeks" ); // Creating a new object for // class Map to clone a map Map<Integer, String> new_map = new HashMap<Integer, String>(); // using iterator for (Map.Entry<Integer, String> entry : hash_Map.entrySet()) { new_map.put(entry.getKey(), entry.getValue()); } System.out.println(new_map); } } |
{1=Geeks, 2=For, 3=Geeks}
1. Cree un objeto para el mapa de clase.
2. Coloque los elementos en el mapa usando el método put().
3. Vuelva a crear otro objeto para el mapa de clases.
4. Ahora finalmente use el método putAll() para clonar el mapa inicial.
A continuación se muestra la implementación del enfoque anterior:
Implementación:
// Program to clone a Map in Java // putAll Method import java.util.*; class GFG { public static void main(String[] args) { // Creating an object for class Map Map<Integer, String> hash_Map = new HashMap<Integer, String>(); // Putting elements into the map hash_Map.put( 1 , "Geeks" ); hash_Map.put( 2 , "For" ); hash_Map.put( 3 , "Geeks" ); // Creating a new object // for class Map to clone a map Map<Integer, String> new_map = new HashMap<Integer, String>(); // using putAll method new_map.putAll(hash_Map); System.out.println(new_map); } } |
{1=Geeks, 2=For, 3=Geeks}
1. Cree un objeto para el mapa de clase.
2. Coloque los elementos en el mapa usando el método put().
3. Vuelva a crear otro objeto para el mapa de clases.
4. Ahora, finalmente, use el constructor de copia (es un constructor especial que se usa para crear un nuevo objeto como una copia de un objeto existente) para clonar el mapa inicial.
A continuación se muestra la implementación del enfoque anterior:
Implementación:
// Program to clone a Map in Java // Copy Constructor import java.util.*; class GFG { public static void main(String[] args) { // Creating an object for class Map Map<Integer, String> hash_Map = new HashMap<Integer, String>(); // putting elements into the map hash_Map.put( 1 , "Geeks" ); hash_Map.put( 2 , "For" ); hash_Map.put( 3 , "Geeks" ); // Creating a new object // for class Map to clone a map Map<Integer, String> new_map = new HashMap<Integer, String>(); new_map = new HashMap<>(hash_Map); System.out.println(new_map); } } |
{1=Geeks, 2=For, 3=Geeks}
1. Cree un objeto para el mapa de clase.
2. Coloque los elementos en el mapa usando el método put().
3. Vuelva a crear otro objeto para el mapa de clases.
4. Ahora finalmente use Stream API de Java 8 para clonar el mapa inicial.
A continuación se muestra la implementación del enfoque anterior:
Implementación:
// Program to clone a Map in Java // Using java8 import java.util.*; import java.util.stream.Collectors; class GFG { public static void main(String[] args) { // Creating an object for class Map Map<Integer, String> hash_Map = new HashMap<Integer, String>(); // putting elements into the map hash_Map.put( 1 , "Geeks" ); hash_Map.put( 2 , "For" ); hash_Map.put( 3 , "Geeks" ); // Creating a new object // for class Map to clone a map Map<Integer, String> new_map = new HashMap<Integer, String>(); new_map = hash_Map.entrySet() .stream() .collect( Collectors .toMap(Map.Entry::getKey, Map.Entry::getValue)); System.out.println(new_map); } } |
{1=Geeks, 2=For, 3=Geeks}
Explicación: también es similar a los métodos anteriores, pero aquí usamos Stream API de Java 8 para clonar el mapa original.
1. Cree un objeto para el mapa de clase.
2. Coloque los elementos en el mapa usando el método put().
3. Vuelva a crear otro objeto para el mapa de clases.
4. Ahora finalmente use la biblioteca GSON de Google para clonar el mapa inicial.
A continuación se muestra la implementación del enfoque anterior:
Implementación:
// Program to clone a Map in Java // JSON Method import java.util.*; import java.util.stream.Collectors; import com.google.gson.Gson; class GFG { public static void main(String[] args) { // Creating an object for class Map Map<Integer, String> hash_Map = new HashMap<Integer, String>(); // putting elements into the map hash_Map.put( 1 , "Geeks" ); hash_Map.put( 2 , "For" ); hash_Map.put( 3 , "Geeks" ); // Creating a new object // for class Map to clone a map Map<Integer, String> new_map = new HashMap<Integer, String>(); Gson gson = new Gson(); String jsonString = gson.toJson(hash_Map); new_map = gson.fromJson(jsonString, Map. class ); System.out.println(new_map); } } |
{1=Geeks, 2=For, 3=Geeks}
Explicación: también es similar a los métodos anteriores, pero aquí usamos la biblioteca GSON de Google para clonar el mapa original. Aquí inicialmente convertimos Map en una string JSON y luego convertimos esa string en un nuevo mapa.
Publicación traducida automáticamente
Artículo escrito por suman_ptnl y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA