HashMap es parte de la colección de Java desde Java 1.2. Proporciona la implementación básica de la interfaz Map de Java que almacena los datos en pares (Clave, Valor). Para acceder a un valor en HashMap, uno debe conocer su clave. HashMap se conoce como HashMap porque utiliza una técnica Hashing para el almacenamiento de datos.
TreeMap en Java se utiliza para implementar la interfaz Map y NavigableMap junto con la clase abstracta. El mapa se ordena según el orden natural de sus claves, o mediante un comparador proporcionado en el momento de la creación del mapa, según el constructor que se utilice. Esto demuestra ser una forma eficiente de ordenar y almacenar los pares clave-valor.
A continuación se muestran métodos para convertir HashMap a TreeMap en Java de tal manera que el TreeMap resultante debería contener todas las asignaciones de HashMap, ordenadas por su orden natural de claves.
Ejemplos:
Entrada: HashMap: {1=Geeks, 2=forGeeks, 3=Un portal de computadora}
Salida: TreeMap: {1=Geeks, 2=forGeeks, 3=Un portal de computadora}Entrada: HashMap: {1=1, 2=2, 3=3}
Salida: TreeMap: {1=1, 2=2, 3=3}
A continuación se muestran métodos para convertir HashMap a TreeMap en Java:
1. En Java 8 : este método incluye convertir HashMap en Stream y recopila elementos de un flujo en un TreeMap utilizando el método Stream.collect() que acepta un recopilador.
Algoritmo :
- Obtenga el HashMap para convertirlo.
- Obtener las entradas del hashMap
- Convertir las entradas del mapa en flujo
- Usando Collectors, recopile las entradas y conviértalas en TreeMap
- Ahora recoge el TreeMap
- Devuelve el TreeMap formado
Programa:
Java
// Java Program to convert // HashMap to TreeMap in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to construct a new // TreeMap from HashMap public static <K, V> Map<K, V> convertToTreeMap(Map<K, V> hashMap) { Map<K, V> treeMap = hashMap // Get the entries from the hashMap .entrySet() // Convert the map into stream .stream() // Now collect the returned TreeMap .collect( Collectors // Using Collectors, collect the entries // and convert it into TreeMap .toMap( Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> newValue, TreeMap::new)); // Return the TreeMap return treeMap; } public static void main(String args[]) { // Create a HashMap Map<String, String> hashMap = new HashMap<>(); // Add entries to the HashMap hashMap.put("1", "Geeks"); hashMap.put("2", "forGeeks"); hashMap.put("3", "A computer Portal"); // Print the HashMap System.out.println("HashMap: " + hashMap); // construct a new TreeMap from HashMap Map<String, String> treeMap = convertToTreeMap(hashMap); // Print the TreeMap System.out.println("TreeMap: " + treeMap); } }
Producción:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal} TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
2. Uso de Java simple : en este método, pase la instancia de HashMap al constructor de TreeMap o al método putAll(). Esto creará directamente el TreeMap a partir del HashMap.
Algoritmo :
- Obtenga el HashMap para convertirlo.
- Crear un nuevo TreeMap
- Pase el hashMap al método putAll() de treeMap
- Devuelve el TreeMap formado
Programa:
Java
// Java Program to convert // HashMap to TreeMap in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to construct a // new TreeMap from HashMap public static <K, V> Map<K, V> convertToTreeMap(Map<K, V> hashMap) { // Create a new TreeMap Map<K, V> treeMap = new TreeMap<>(); // Pass the hashMap to putAll() method treeMap.putAll(hashMap); // Return the TreeMap return treeMap; } public static void main(String args[]) { // Create a HashMap Map<String, String> hashMap = new HashMap<>(); // Add entries to the HashMap hashMap.put("1", "Geeks"); hashMap.put("2", "forGeeks"); hashMap.put("3", "A computer Portal"); // Print the HashMap System.out.println("HashMap: " + hashMap); // construct a new TreeMap from HashMap Map<String, String> treeMap = convertToTreeMap(hashMap); // Print the TreeMap System.out.println("TreeMap: " + treeMap); } }
Producción:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal} TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
3. Uso de la biblioteca Guava de Google : Guava también proporciona una implementación de TreeMap que se puede usar para crear una instancia de TreeMap vacía.
Algoritmo:
- Obtenga el HashMap para convertirlo.
- Cree un nuevo TreeMap usando Maps.newTreeMap() de la biblioteca Guava
- Pase el hashMap al método putAll() de treeMap
- Devuelve el TreeMap formado
Programa:
Java
// Java Program to convert // HashMap to TreeMap in Java 8 import com.google.common.collect.*; import java.util.*; import java.util.stream.*; class GFG { // Generic function to construct a // new TreeMap from HashMap public static <K extends Comparable, V> Map<K, V> convertToTreeMap(Map<K, V> hashMap) { // Create a new TreeMap Map<K, V> treeMap = Maps.newTreeMap(); // Pass the hashMap to putAll() method treeMap.putAll(hashMap); // Return the TreeMap return treeMap; } public static void main(String args[]) { // Create a HashMap Map<String, String> hashMap = new HashMap<>(); // Add entries to the HashMap hashMap.put("1", "Geeks"); hashMap.put("2", "forGeeks"); hashMap.put("3", "A computer Portal"); // Print the HashMap System.out.println("HashMap: " + hashMap); // construct a new TreeMap from HashMap Map<String, String> treeMap = convertToTreeMap(hashMap); // Print the TreeMap System.out.println("TreeMap: " + treeMap); } }
Producción:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal} TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
4. Conversión entre tipos incompatibles : este método se puede utilizar si el TreeMap requerido es de un tipo diferente al HashMap. En esto, la conversión debe hacerse manualmente.
Algoritmo :
- Obtenga el HashMap para convertirlo.
- Crear un nuevo TreeMap
- Para cada entrada del hashMap:
- Convierta la clave y el valor en el tipo deseado mediante la conversión
- Inserte el par convertido por el método put() de treeMap
- Devuelve el TreeMap formado
Programa:
Java
// Java Program to convert // HashMap to TreeMap in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Function to construct a new TreeMap from HashMap public static Map<Integer, String> convertToTreeMap(Map<String, String> hashMap) { // Create a new TreeMap Map<Integer, String> treeMap = new TreeMap<>(); // Convert the HashMap to TreeMap manually for (Map.Entry<String, String> e : hashMap.entrySet()) { treeMap.put(Integer.parseInt(e.getKey()), e.getValue()); } // Return the TreeMap return treeMap; } public static void main(String args[]) { // Create a HashMap Map<String, String> hashMap = new HashMap<>(); // Add entries to the HashMap hashMap.put("1", "Geeks"); hashMap.put("2", "forGeeks"); hashMap.put("3", "A computer Portal"); // Print the HashMap System.out.println("HashMap: " + hashMap); // construct a new TreeMap<Integer, String> // from HashMap<String, String> Map<Integer, String> treeMap = convertToTreeMap(hashMap); // Print the TreeMap System.out.println("TreeMap: " + treeMap); } }
Producción:
HashMap: {1=Geeks, 2=forGeeks, 3=A computer Portal} TreeMap: {1=Geeks, 2=forGeeks, 3=A computer Portal}
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA