2 minuto(s) de lectura

Concepto

  • Interface Map

  • Interfaz genérica que se utiliza para almacenar pares clave-valor

  • Una implementación de Map le permite almacenar datos de forma eficiente y recuperarlos mediante una clave

  • Define métodos para insertar, eliminar y acceder a los datos almacenados en ella

  • Métodos para obtener información sobre el tamaño y contenido de la Map

  • Métodos más comunes de Map son los siguientes:

    1. put(key, value)

      • Inserta un nuevo par clave-valor en la Map

      • Si la clave ya existe, se sobrescribe el valor anterior.

    2. get(key)

      • Devuelve el valor asociado a una clave específica

      • Si la clave no existe, se devuelve null

    3. remove(key)

      • Elimina el par clave-valor asociado a una clave específica

      • Si la clave no existe, no se realiza ninguna acción

    4. size()

      • Devuelve el número de pares clave-valor almacenados en la Map
    5. isEmpty()

      • Devuelve true si la Map está vacía o false en caso contrario
  • Definido por un conjuntos de claves

    • Colección de valores

      1. Colección de valores

      2. Conjunto de pares clave-valor llamadas entradas

  • Las claves no puede haber elementos duplicados ( una clave no puede estar asociada con más valores) , las claves forman un conjunto (Set)

  • Si permiten valores duplicados

  • No extiende a Collections ni a Iterable

    • No se puede aplicar un for extendido sobre sus elementos salvo que accedamos explícitamente a ellos
  • El tamaño de la Interface Map se adapta dinámicamente al número de objetos que se le vayan añadiendo

  • Diccionarios o propiedades para almacenar en memoria tablas de bases de datos , memoria cache

Implementaciones de la Interface Map

  • La clase HashMap y TreeMap implementan la interface Map

    • Clase HashMap obliga a definir metodos hashCode del tipo claves para evitar comportamientos incorrectos como claves repetidas
  • Al igual que la Interface Set los objetos mutables que se introducen en un Map son vistas o referencias a objetos por lo tanto si estos cambian el Map podría dejar de ser coherente lo que significa que podría tener claves repetidas

//  Clave (Key)               Clase que implementa la interface    
//    ↓       Valor (Value)      ↓
//    ↓         ↓                ↓
Map<String , Integer> m = new HashMap<String , Integer>();

Ejemplo


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

public class MapEjemplo {
  public static void main(String[] args) {
    // Crear una instancia de HashMap
    Map<String, Integer> edades = new HashMap<>();

    // Agregar pares clave-valor a la Map
    edades.put("Juan", 25);
    edades.put("Ana", 33);
    edades.put("Pedro", 40);

    // Obtener el valor asociado a una clave
    System.out.println(edades.get("Juan")); // Imprime 25

    // Eliminar un par clave-valor
    edades.remove("Ana");

    // Verificar si la Map está vacía
    System.out.println(edades.isEmpty()); // Imprime false

    // Obtener el tamaño de la Map
    System.out.println(edades.size()); // Imprime 2
  }
}
  • En este ejemplo se crea una instancia de HashMap que almacena pares de tipo <String,Integer>

    • Significa que la clave es de tipo String y el valor es de tipo Integer
  • Luego se agregan pares clave-valor a la Map

    • Se obtiene el valor asociado a una clave específica

Ejemplo de Uso de Map

  • Listin telefónico
    • ( clave : nombre del contacto - valor : número de teléfono )
  • Lista de notas de una clase
    • ( clave : nombre del alumno - valor : calificaciones )

Deja un comentario