Mapa genérico en Java

Java Arrays almacena elementos en una colección ordenada y se puede acceder a los valores usando el índice (un número entero). Mientras que HashMap se almacena como un par clave/valor . Usando HashMap, podemos almacenar los elementos o valores y se puede acceder a estos valores mediante índices/claves de cualquier tipo, ya sea entero, string, doble, carácter o cualquier tipo de datos definido por el usuario.

Las asignaciones en un HashMap son de Clave → Valor

HashMap es parte de Java desde Java 1.2. Implementa la interfaz java.util.Map .

¿Qué es Generic Map y en qué se diferencia del término HashMap?

El término genérico simplemente es la idea de permitir que el tipo (entero, doble, string, etc. o cualquier tipo definido por el usuario) sea el parámetro de los métodos, la clase o la interfaz. Por ejemplo, todas las colecciones incorporadas en Java como ArrayList , HashSet , HashMap , etc. usan genéricos. 

El mapa genérico en un lenguaje simple se puede generalizar como:

Map< K, V > map = new HashMap< K, V >();

Donde K y V se usan para especificar el parámetro de tipo genérico pasado en la declaración de un HashMap. Podemos agregar cualquier tipo, ya sea Integer, String, Float, Character o cualquier tipo definido por el usuario en lugar de K y V en la sintaxis anterior para especificar que podemos inicializar el HashMap de nuestro deseo.

Ejemplo:

Supongamos que si la clave es de tipo String y el valor correspondiente es de tipo Integer, entonces podemos inicializarla como,

Map< String , Integer > map = new HashMap< String ,Integer >();

El mapa ahora solo puede aceptar instancias de strings como clave e instancias de enteros como valores.

Acceso a un mapa genérico

Esto se puede hacer usando las funciones put() y get().

1. put() : se usa para agregar un nuevo par clave/valor al Hashmap.

2. get() : se utiliza para obtener el valor correspondiente a una clave en particular.

Ejemplo :

Map< Integer, String > map = new HashMap<>();

// adding the key 123 and value
// corresponding to it as abc in the map
map.put( 123, "abc");     
map.put(65, "a");
map.put(2554 , "GFG");
map.get(65);

Producción:

a

Iterando un mapa genérico

El mapa tiene dos colecciones para la iteración . Uno es keySet() y el otro es values() .

Ejemplo: Usar el método iterator() 

Map<Integer, Integer> map = new HashMap<>;

//adding key, value pairs to the Map

// iterate keys.
Iterator<Integer> key   = map.keySet().iterator();

while(key.hasNext()){
  Integer aKey   = key.next();
  String  aValue = map.get(aKey);
}

Iterator<Integer>  value = map.values().iterator();

while(valueIterator.hasNext()){
  String aString = value.next();
}

Ejemplo: usar un nuevo bucle for o un bucle for each o un bucle for genérico

Map<Integer, String> map = new HashMap<Integer, String>;

//adding key, value pairs to the Map

//using for-each loop
for(Integer key : map.keySet()) {
    String value = map.get(key);
    System.out.println("" + key + ":" + value);
}

for(String value : map.values()) {
    System.out.println(value);
}

Programa Java para ilustrar el uso de un mapa 

Java

// Java program to demonstrate
// Generic Map
  
import java.io.*;
import java.util.*;
  
class GenericMap {
  
    public static void main(String[] args)
    {
        // create array of strings
        String arr[]
            = { "gfg",  "code",    "quiz",   "program",
                "code", "website", "quiz",   "gfg",
                "java", "gfg",     "program" };
  
        // to count the frequency of a string and store it
        // in the map
        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            if (map.containsKey(arr[i])) {
                int count = map.get(arr[i]);
                map.put(arr[i], count + 1);
            }
            else {
                map.put(arr[i], 1);
            }
        }
  
        // to get and print the count of the mentioned
        // string
        System.out.println(map.get("gfg"));
        System.out.println(map.get("code"));
    }
}
Producción

3
2

Publicación traducida automáticamente

Artículo escrito por goelshubhangi3118 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *