Directorio de artículos
prefacio
En el marco de recopilación de Java, Map
las interfaces se utilizan para almacenar pares clave-valor y proporcionar una estructura de datos para buscar y operar en función de claves. Map
La 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á Map
en detalle las interfaces en Java y sus clases de implementación comunes, incluidas HashMap
, TreeMap
y LinkedHashMap
, y proporcionará código de muestra.
1. Descripción general del mapa
Map
Una interfaz es una colección de pares clave-valor, que hereda de y otros métodos Collection
en 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
HashMap
Es Map
una 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. HashMap
A continuación se muestran algunos métodos utilizados habitualmente :
put(K key, V value)
: agregue el par clave-valor especificado aHashMap
.remove(Object key)
: Elimina el par clave-valor para la claveHashMap
especificada .get(Object key)
: Devuelve el valor correspondiente a la clave especificada.containsKey(Object key)
: CompruebaHashMap
si la clave especificada está incluida.containsValue(Object value)
: CompruebaHashMap
si el valor especificado está incluido.size()
: DevuelveHashMap
el número de pares clave-valor.
Aquí hay un HashMap
có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 HashMap
instancia y agregamos las puntuaciones de algunos estudiantes. Luego, HashMap
eliminamos y obtenemos el valor correspondiente por clave. Finalmente, verificamos HashMap
si una clave específica está contenida en .
3. Mapa de árbol
TreeMap
Es Map
otra 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. TreeMap
A continuación se muestran algunos métodos utilizados habitualmente :
put(K key, V value)
: agregue el par clave-valor especificado aTreeMap
.remove(Object key)
: Elimina el par clave-valor para la claveTreeMap
especificada .get(Object key)
: Devuelve el valor correspondiente a la clave especificada.containsKey(Object key)
: CompruebaTreeMap
si la clave especificada está incluida.size()
: DevuelveTreeMap
el número de pares clave-valor.firstKey()
: DevuelveTreeMap
la primera clave de la cadena.lastKey()
:TreeMap
La última clave en la devolución.
Aquí hay un TreeMap
có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 TreeMap
instancia y agregamos las puntuaciones de algunos estudiantes. Dado que se TreeMap
basa en una implementación de árbol rojo-negro, el orden de las claves se ordenará según el orden natural de las claves. Luego, TreeMap
eliminamos 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
LinkedHashMap
Es Map
otra 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. LinkedHashMap
A continuación se muestran algunos métodos utilizados habitualmente :
put(K key, V value)
: agregue el par clave-valor especificado aLinkedHashMap
.remove(Object key)
: Elimina el par clave-valor para la claveLinkedHashMap
especificada .get(Object key)
: Devuelve el valor correspondiente a la clave especificada.containsKey(Object key)
: CompruebaLinkedHashMap
si la clave especificada está incluida.size()
: DevuelveLinkedHashMap
el número de pares clave-valor.
Aquí hay un LinkedHashMap
có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 LinkedHashMap
instancia y agregamos las puntuaciones de algunos estudiantes. Debido a LinkedHashMap
que se implementa en base a tablas hash y listas vinculadas, mantiene el orden de inserción de los pares clave-valor. Luego, LinkedHashMap
eliminamos y obtenemos el valor correspondiente por clave. Finalmente, verificamos LinkedHashMap
si una clave específica está contenida en .
Resumir
En este artículo, proporcionamos una introducción detallada a Map
las interfaces en Java y sus clases de implementación comunes HashMap
: TreeMap
y LinkedHashMap
. Al comprender sus características y uso, puede elegir la Map
clase de implementación adecuada para almacenar y operar pares clave-valor de acuerdo con las necesidades reales.
HashMap
Es adecuado para escenarios en los que es necesario encontrar e insertar rápidamente pares clave-valor, TreeMap
para escenarios en los que es necesario ordenar las claves y LinkedHashMap
para escenarios en los que es necesario mantener el orden de inserción.
¡Espero que este artículo le ayude a comprender y utilizar Map
las interfaces Java!
Referencias:
Adjunto: código de muestra
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);
}
}
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);
}
}
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);
}
}