[Conceptos básicos de Java] Explicación detallada del mapa de Java

prefacio

En el marco de recopilación de Java, Maplas interfaces se utilizan para almacenar pares clave-valor y proporcionar una estructura de datos para buscar y operar en función de claves. MapLa clase de implementación de la interfaz proporciona métodos completos para operar pares clave-valor, como agregar, eliminar, actualizar y buscar. Este artículo presentará Mapen detalle las interfaces en Java y sus clases de implementación comunes, incluidas HashMap, TreeMapy LinkedHashMap, y proporcionará código de muestra.

1. Descripción general del mapa

MapUna interfaz es una colección de pares clave-valor, que hereda de y otros métodos Collectionen la interfaz . También proporciona métodos para encontrar valores basados ​​en claves, así como métodos para agregar, eliminar y actualizar clave-valor. pares. En Java, las interfaces tienen varias clases de implementación comunes, cada una con diferente rendimiento y usos.size()isEmpty()Map

  • HashMap: Basado en la implementación de la tabla hash, tiene operaciones de búsqueda e inserción rápidas y es adecuado para escenarios donde es necesario encontrar rápidamente pares clave-valor.
  • TreeMap: Según la implementación del árbol rojo-negro, las claves se pueden ordenar y se proporcionan una serie de métodos relacionados con la clasificación, que son adecuados para escenarios en los que es necesario ordenar las claves.
  • LinkedHashMap: Basado en la implementación de la tabla hash y la lista vinculada, mantiene el orden de inserción de pares clave-valor y es adecuado para escenarios donde es necesario mantener el orden de inserción.

2. Mapa Hash

HashMapEs Mapuna clase de interfaz de implementación común, se implementa en función de una tabla hash y puede proporcionar operaciones rápidas de búsqueda e inserción. HashMapA continuación se muestran algunos métodos utilizados habitualmente :

  • put(K key, V value): agregue el par clave-valor especificado a HashMap.
  • remove(Object key): Elimina el par clave-valor para la clave HashMapespecificada .
  • get(Object key): Devuelve el valor correspondiente a la clave especificada.
  • containsKey(Object key): Comprueba HashMapsi la clave especificada está incluida.
  • containsValue(Object value): Comprueba HashMapsi el valor especificado está incluido.
  • size(): Devuelve HashMapel número de pares clave-valor.

Aquí hay un HashMapcódigo de muestra utilizado:

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

public class HashMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new HashMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        boolean containsCharlie = scores.containsKey("Charlie");
        System.out.println("Contains Charlie: " + containsCharlie);
    }
}

En el ejemplo anterior, creamos una HashMapinstancia y agregamos las puntuaciones de algunos estudiantes. Luego, HashMapeliminamos y obtenemos el valor correspondiente por clave. Finalmente, verificamos HashMapsi una clave específica está contenida en .

3. Mapa de árbol

TreeMapEs Mapotra clase de implementación común de la interfaz: se implementa en función del árbol rojo-negro, puede ordenar claves y proporciona una serie de métodos relacionados con la clasificación. TreeMapA continuación se muestran algunos métodos utilizados habitualmente :

  • put(K key, V value): agregue el par clave-valor especificado a TreeMap.
  • remove(Object key): Elimina el par clave-valor para la clave TreeMapespecificada .
  • get(Object key): Devuelve el valor correspondiente a la clave especificada.
  • containsKey(Object key): Comprueba TreeMapsi la clave especificada está incluida.
  • size(): Devuelve TreeMapel número de pares clave-valor.
  • firstKey(): Devuelve TreeMapla primera clave de la cadena.
  • lastKey(): TreeMapLa última clave en la devolución.

Aquí hay un TreeMapcódigo de muestra utilizado:

import java.util.TreeMap;
import java.util.Map;

public class TreeMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new TreeMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        String firstKey = scores.firstKey();
        String lastKey = scores.lastKey();
        System.out.println("First key: " + firstKey);
        System.out.println("Last key: " + lastKey);
    }
}

En el ejemplo anterior, creamos una TreeMapinstancia y agregamos las puntuaciones de algunos estudiantes. Dado que se TreeMapbasa en una implementación de árbol rojo-negro, el orden de las claves se ordenará según el orden natural de las claves. Luego, TreeMapeliminamos y obtenemos el valor correspondiente por clave. Finalmente, obtenemos la primera y la última clave al usar el método firstKey()and .lastKey()TreeMap

4. LinkedHashMap

LinkedHashMapEs Mapotra clase de implementación de la interfaz, que se basa en la implementación de tablas hash y listas vinculadas, y mantiene el orden de inserción de los pares clave-valor. LinkedHashMapA continuación se muestran algunos métodos utilizados habitualmente :

  • put(K key, V value): agregue el par clave-valor especificado a LinkedHashMap.
  • remove(Object key): Elimina el par clave-valor para la clave LinkedHashMapespecificada .
  • get(Object key): Devuelve el valor correspondiente a la clave especificada.
  • containsKey(Object key): Comprueba LinkedHashMapsi la clave especificada está incluida.
  • size(): Devuelve LinkedHashMapel número de pares clave-valor.

Aquí hay un LinkedHashMapcódigo de muestra utilizado:

import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new LinkedHashMap<>();


        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        boolean containsCharlie = scores.containsKey("Charlie");
        System.out.println("Contains Charlie: " + containsCharlie);
    }
}

En el ejemplo anterior, creamos una LinkedHashMapinstancia y agregamos las puntuaciones de algunos estudiantes. Debido a LinkedHashMapque se implementa en base a tablas hash y listas vinculadas, mantiene el orden de inserción de los pares clave-valor. Luego, LinkedHashMapeliminamos y obtenemos el valor correspondiente por clave. Finalmente, verificamos LinkedHashMapsi una clave específica está contenida en .

Resumir

En este artículo, proporcionamos una introducción detallada a Maplas interfaces en Java y sus clases de implementación comunes HashMap: TreeMapy LinkedHashMap. Al comprender sus características y uso, puede elegir la Mapclase de implementación adecuada para almacenar y operar pares clave-valor de acuerdo con las necesidades reales.

HashMapEs adecuado para escenarios en los que es necesario encontrar e insertar rápidamente pares clave-valor, TreeMappara escenarios en los que es necesario ordenar las claves y LinkedHashMappara escenarios en los que es necesario mantener el orden de inserción.

¡Espero que este artículo le ayude a comprender y utilizar Maplas interfaces Java!

Referencias:

Adjunto: código de muestra

HashMapEjemplo.java

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

public class HashMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new HashMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        boolean containsCharlie = scores.containsKey("Charlie");
        System.out.println("Contains Charlie: " + containsCharlie);
    }
}

Ejemplo de mapa de árbol.java

import java.util.TreeMap;
import java.util.Map;

public class TreeMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new TreeMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        String firstKey = scores.firstKey();
        String lastKey = scores.lastKey();
        System.out.println("First key: " + firstKey);
        System.out.println("Last key: " + lastKey);
    }
}

LinkedHashMapExample.java

import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapExample {
    
    
    public static void main(String[] args) {
    
    
        Map<String, Integer> scores = new LinkedHashMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 80);
        scores.put("Charlie", 95);

        System.out.println("Scores: " + scores);

        scores.remove("Bob");
        System.out.println("Scores after removal: " + scores);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore);

        boolean containsCharlie = scores.containsKey("Charlie");
        System.out.println("Contains Charlie: " + containsCharlie);
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_21484461/article/details/131384612
Recomendado
Clasificación