Junior
Cuéntame sobre la colección Map en Java y sus características.
sobes.tech AI
Respuesta de la IA
Map — es una interfaz en Java Collection Framework que representa una colección de pares "clave-valor". Las claves son únicas, pero los valores pueden repetirse.
Características principales:
- La clave se usa para acceder al valor correspondiente.
- La misma clave no puede ser añadida dos veces. Al intentar añadir una clave existente, el valor antiguo se reemplaza por el nuevo.
Mapno hereda de la interfazCollection. Tiene sus propios métodos para trabajar con pares "clave-valor".- El orden de los pares "clave-valor" puede variar dependiendo de la implementación específica.
Implementaciones populares de Map:
HashMap: No garantiza el orden de los elementos. Ofrece un alto rendimiento para la mayoría de las operaciones (inserción, obtención, eliminación) en ausencia de conflictos de hash.LinkedHashMap: Almacena los elementos en el orden en que fueron añadidos (o en orden de acceso, si está configurado de esa manera).TreeMap: Almacena los elementos en orden ordenado por la clave (orden natural o proporcionado por un comparador). Ofrece tiempo logarítmico para la mayoría de las operaciones.
Ejemplos de métodos:
// Obtener valor por clave
Object value = map.get(key);
// Añadir o actualizar par clave-valor
Object oldValue = map.put(key, value);
// Eliminar par por clave
Object removedValue = map.remove(key);
// Comprobar si existe una clave
boolean containsKey = map.containsKey(key);
// Comprobar si existe un valor
boolean containsValue = map.containsValue(value);
// Obtener conjunto de todas las claves
Set<KeyType> keys = map.keySet();
// Obtener colección de todos los valores
Collection<ValueType> values = map.values();
// Obtener conjunto de todas las entradas (pares clave-valor)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Obtener tamaño del Map
int size = map.size();
Uso de Map.Entry durante la iteración:
// Iterar sobre el conjunto de entradas
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}