Maps

Tipos de datos y excepciones en Java

Jim White

Java Developer

Los maps son tablas de búsqueda

  • Los maps funcionan como tablas de búsqueda
    • Guardan un "valor" en una "clave" concreta
    • Usa la "clave" para recuperar el "valor" guardado
  • Ejemplo: llamar al médico
    • Buscan la historia clínica (el objeto valor) dada un nombre/fecha de nacimiento (la clave)

Los maps sirven como estructura de búsqueda, como cuando llamas a la consulta y te piden nombre y fecha de nacimiento para encontrar tu historial

Tipos de datos y excepciones en Java

Interfaz Map

  • La interfaz Map define operaciones sobre pares clave–valor
    • Cómo guardar o "put" un valor en una clave concreta
    • Cómo "remove" el valor en la clave del Map
    • Cómo recuperar el valor dada una clave
  • Varias implementaciones de Map con comportamiento similar
    • Una implementación popular de Map es HashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Tipos de datos y excepciones en Java

Claves y valores en HashMap

Las claves y valores de un Map o HashMap pueden ser del mismo tipo o de tipos distintos

Tipos de datos y excepciones en Java

Construcción de HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • El constructor parametrizado/genérico de HashMap requiere dos tipos

    • El primer tipo = el tipo de clave

      El primer parámetro genérico de HashMap es para las claves

    • El segundo tipo = el tipo de valor

      El segundo parámetro genérico de Hashmap es para los valores

Los tipos de clave y valor en los genéricos especifican el tipo de datos de claves y valores

  • Requiere importar java.util.HashMap
Tipos de datos y excepciones en Java

Métodos de HashMap

  • Usa .put(key,value) para añadir pares clave–valor a la tabla
  • Usa .remove(key) para eliminar el par en esa clave
  • Usa .get(key) para recuperar el valor en esa clave
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Tipos de datos y excepciones en Java

Collections

  • java.util.Collections es una clase de apoyo
  • Sirve para ordenar, rellenar, copiar, buscar y más
    • Solo tiene métodos static
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Tipos de datos y excepciones en Java

Métodos de Collection

  • Añadir muchos objetos a una List
    • addAll(List list, Object a, b, ...)
  • Devolver el recuento de un objeto en una colección
    • frequency(Collection c, Object o)
  • Reordenar los objetos de una List
    • reverse(List list)
  • Ordenar los objetos de una List
    • sort(List list)
  • Sustituir todos los objetos de una List por otro objeto
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Tipos de datos y excepciones en Java

Arrays

  • A veces hay que convertir un array (p. ej., int[]) en una List
    • Los arrays en Java no son redimensionables y puede hacer falta crecer/encoger los elementos
    • List tiene más capacidades (búsqueda, ordenación, etc.)
  • java.util.Arrays es otra clase de apoyo
    • Permite convertir un array de Java en una List
Tipos de datos y excepciones en Java

Ejemplo de Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Tipos de datos y excepciones en Java

¡Vamos a practicar!

Tipos de datos y excepciones en Java

Preparing Video For Download...