Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Mapa hash de Java

Mapa hash de Java

En este tutorial, aprenderemos sobre la clase Java HashMap y sus diversas operaciones con la ayuda de ejemplos.

El HashMap La clase del marco de colecciones de Java proporciona la funcionalidad de la estructura de datos de la tabla hash.

Almacena elementos en clave/valor pares Aquí, claves son identificadores únicos que se utilizan para asociar cada valor en un mapa.

El HashMap La clase implementa la interfaz Mapa.


Crear un HashMap

Para crear un mapa hash, debemos importar el java.util.HashMap paquete primero. Una vez que importamos el paquete, así es como podemos crear hashmaps en Java.

// hashMap creation with 8 capacity and 0.6 load factor
HashMap<K, V> numbers = new HashMap<>();

En el código anterior, hemos creado un hashmap llamado numbers . Toma, K representa el tipo de clave y V representa el tipo de valores. Por ejemplo,

HashMap<String, Integer> numbers = new HashMap<>();

Aquí, el tipo de claves es String y el tipo de valores es Integer .


Ejemplo 1:Crear HashMap en Java

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    // create a hashmap
    HashMap<String, Integer> languages = new HashMap<>();

    // add elements to hashmap
    languages.put("Java", 8);
    languages.put("JavaScript", 1);
    languages.put("Python", 3);
    System.out.println("HashMap: " + languages);
  }
}

Salida

HashMap: {Java=8, JavaScript=1, Python=3}

En el ejemplo anterior, hemos creado un HashMap idiomas nombrados .

Aquí, hemos usado el put() método para agregar elementos al hashmap. Aprenderemos más sobre el put() más adelante en este tutorial.


Operaciones básicas en Java HashMap

El HashMap class proporciona varios métodos para realizar diferentes operaciones en hashmaps. Veremos algunas operaciones de listas de arreglos de uso común en este tutorial:


1. Añadir elementos a un HashMap

Para agregar un solo elemento al hashmap, usamos el put() método del HashMap clase. Por ejemplo,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    // create a hashmap
    HashMap<String, Integer> numbers = new HashMap<>();

    System.out.println("Initial HashMap: " + numbers);
    // put() method to add elements
    numbers.put("One", 1);
    numbers.put("Two", 2);
    numbers.put("Three", 3);
    System.out.println("HashMap after put(): " + numbers);
  }
}

Salida

Initial HashMap: {}
HashMap after put(): {One=1, Two=2, Three=3}

En el ejemplo anterior, hemos creado un HashMap números con nombre . Aquí, hemos usado el put() método para agregar elementos a los números.

Note la declaración,

numbers.put("One", 1);

Aquí, estamos pasando el String valor Uno como clave y Integer valor 1 como el valor del put() método.

Lecturas recomendadas


2. Acceder a los elementos de HashMap

Podemos usar el get() para acceder al valor del hashmap. Por ejemplo,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // get() method to get value
    String value = languages.get(1);
    System.out.println("Value at index 1: " + value);
  }
}

Salida

HashMap: {1=Java, 2=Python, 3=JavaScript}
Value at index 1: Java

En el ejemplo anterior, observe la expresión,

languages.get(1);

Aquí, el get() el método toma la clave como su argumento y devuelve el valor correspondiente asociado con la clave.

También podemos acceder a las teclas , valores y clave/valor pares del hashmap como vistas establecidas usando keySet() , values() y entrySet() métodos respectivamente. Por ejemplo,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {
    HashMap<Integer, String> languages = new HashMap<>();

    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // return set view of keys
    // using keySet()
    System.out.println("Keys: " + languages.keySet());

    // return set view of values
    // using values()
    System.out.println("Values: " + languages.values());

    // return set view of key/value pairs
    // using entrySet()
    System.out.println("Key/Value mappings: " + languages.entrySet());
  }
}

Salida

HashMap: {1=Java, 2=Python, 3=JavaScript}
Keys: [1, 2, 3]
Values: [Java, Python, JavaScript]
Key/Value mappings: [1=Java, 2=Python, 3=JavaScript]

En el ejemplo anterior, hemos creado un hashmap llamado languages . Aquí, estamos accediendo a las teclas , valores y clave/valor mapeos del hashmap.

Lecturas recomendadas


3. Cambiar el valor de HashMap

Podemos usar el replace() método para cambiar el valor asociado con una clave en un hashmap. Por ejemplo,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("Original HashMap: " + languages);

    // change element with key 2
    languages.replace(2, "C++");
    System.out.println("HashMap using replace(): " + languages);
  }
}

Salida

Original HashMap: {1=Java, 2=Python, 3=JavaScript}
HashMap using replace(): {1=Java, 2=C++, 3=JavaScript}

En el ejemplo anterior, hemos creado un hashmap llamado languages . Observe la expresión,

languages.replace(2, "C++");

Aquí, estamos cambiando el valor al que hace referencia la clave 2 con el nuevo valor C++ .

El HashMap class también proporciona algunas variaciones del replace() método. Para obtener más información, visite


4. Eliminar elementos de HashMap

Para eliminar elementos de un hashmap, podemos usar el método remove(). Por ejemplo,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // remove element associated with key 2
    String value = languages.remove(2);
    System.out.println("Removed value: " + value);

    System.out.println("Updated HashMap: " + languages);
  }
}

Salida

HashMap: {1=Java, 2=Python, 3=JavaScript}
Removed value: Python
Updated HashMap: {1=Java, 3=JavaScript}

Aquí, el remove() el método toma la clave como su parámetro. Luego devuelve el valor asociado con la clave y elimina la entrada .

También podemos eliminar la entrada solo bajo ciertas condiciones. Por ejemplo,

remove(2, "C++");

Aquí, el remove() El método solo elimina la entrada si la tecla 2 está asociado con el valor C++ . Desde 2 no está asociado con C++ , no elimina la entrada.

Para obtener más información, visite Java HashMap remove().


Otros métodos de HashMap

Método Descripción
borrar() elimina todas las asignaciones del HashMap
calcular() calcula un nuevo valor para la clave especificada
computeIfAbsent() calcula el valor si no hay una asignación para la clave
computeIfPresent() calcula un valor para el mapeo si la clave está presente
combinar() combina la asignación especificada con el HashMap
clonar() hace la copia del HashMap
contieneClave() comprueba si la clave especificada está presente en Hashmap
contieneValor() comprueba si Hashmap contiene el valor especificado
tamaño() devuelve el número de elementos en HashMap
estáVacío() comprueba si el Hashmap está vacío

Iterar a través de un HashMap

Para iterar a través de cada entrada del hashmap, podemos usar el bucle for-each de Java. Podemos iterar a través de claves solamente , solo valores y asignación de clave/valor . Por ejemplo,

import java.util.HashMap;
import java.util.Map.Entry;

class Main {
  public static void main(String[] args) {

    // create a HashMap
    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // iterate through keys only
    System.out.print("Keys: ");
    for (Integer key : languages.keySet()) {
      System.out.print(key);
      System.out.print(", ");
    }

    // iterate through values only
    System.out.print("\nValues: ");
    for (String value : languages.values()) {
      System.out.print(value);
      System.out.print(", ");
    }
    
    // iterate through key/value entries
    System.out.print("\nEntries: ");
    for (Entry<Integer, String> entry : languages.entrySet()) {
      System.out.print(entry);
      System.out.print(", ");
    }
  }
}

Salida

HashMap: {1=Java, 2=Python, 3=JavaScript}
Keys: 1, 2, 3,
Values: Java, Python, JavaScript,        
Entries: 1=Java, 2=Python, 3=JavaScript,

Tenga en cuenta que hemos utilizado el Map.Entry en el ejemplo anterior. Es la clase anidada del Map interfaz que devuelve una vista (elementos) del mapa.

Primero necesitamos importar el java.util.Map.Entry paquete para usar esta clase.

Esta clase anidada devuelve una vista (elementos) del mapa.


Creación de HashMap a partir de otros mapas

En Java, también podemos crear un hashmap a partir de otros mapas. Por ejemplo,

import java.util.HashMap;
import java.util.TreeMap;

class Main {
  public static void main(String[] args) {

    // create a treemap
    TreeMap<String, Integer> evenNumbers = new TreeMap<>();
    evenNumbers.put("Two", 2);
    evenNumbers.put("Four", 4);
    System.out.println("TreeMap: " + evenNumbers);

    // create hashmap from the treemap
    HashMap<String, Integer> numbers = new HashMap<>(evenNumbers);
    numbers.put("Three", 3);
    System.out.println("HashMap: " + numbers);
  }
}

Salida

TreeMap: {Four=4, Two=2}
HashMap: {Two=2, Three=3, Four=4}

En el ejemplo anterior, hemos creado un TreeMap llamado evenNumbers . Observe la expresión,

numbers = new HashMap<>(evenNumbers)

Aquí, estamos creando un HashMap números con nombre usando el TreeMap . Para obtener más información sobre el diagrama de árbol, visite Java TreeMap.

Nota :al crear un hashmap, podemos incluir parámetros opcionales:capacidad y factor de carga . Por ejemplo,

HashMap<K, V> numbers = new HashMap<>(8, 0.6f);

Aquí,

Si no se utilizan los parámetros opcionales, la capacidad predeterminada tendrá 16 y el factor de carga predeterminado será 0,75 .


Java

  1. Operadores Java
  2. Comentarios Java
  3. Declaración if...else de Java
  4. Java para cada bucle
  5. Cadenas Java
  6. Interfaz Java
  7. Clase anónima de Java
  8. Prueba de Java con recursos
  9. Anotaciones Java
  10. Aserciones de Java
  11. Java Vector