package com.trifulcas.colecciones;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
public class EjemplosHashMap {
public static void main(String[] args) {
// Creo un hashmap de clave cadena y valor integer
HashMap<String, Integer> diccionario = new HashMap<String, Integer>();
// Añado valores
diccionario.put("Ana", 7);
diccionario.put("Eva", 8);
diccionario.put("Rosa", 6);
// Recupero valores
System.out.println(diccionario.get("Ana"));
System.out.println(diccionario.get("Pep"));
// Compruebo si existe una clave (en este caso no)
System.out.println(diccionario.containsKey("Pep"));
// Recorro las claves
for (String clave : diccionario.keySet()) {
// COn la clave tengo el valor vía get
System.out.println(clave + " - " + diccionario.get(clave));
}
// Recorro solo los valores
for (Integer valor : diccionario.values()) {
System.out.println(valor);
}
// Recorro el par clave valor con entryset
for (Entry<String, Integer> entrada : diccionario.entrySet()) {
System.out.println(entrada.getKey()+" - "+entrada.getValue());
}
// Eliminar elementos
diccionario.remove("Rosa");
System.out.println(diccionario);
// Cambio un valor
diccionario.put("Ana",9);
System.out.println(diccionario);
// Borro todo el hasmap
diccionario.clear();
System.out.println(diccionario);
// Yo puedo hacer hashmap de cualquier cosa
HashMap<Integer,String> hash01=new HashMap<>();
hash01.put(27, "Hola");
hash01.put(19, "Adios");
System.out.println(hash01);
// Un hashmap que tiene como valores un arraylist
HashMap<String,ArrayList<Integer>> hash02=new HashMap<>();
hash02.put("Ana", new ArrayList<>());
hash02.get("Ana").add(5);
hash02.get("Ana").add(7);
hash02.get("Ana").add(9);
hash02.put("Eva", new ArrayList<>());
hash02.get("Eva").add(6);
hash02.get("Eva").add(8);
hash02.get("Eva").add(10);
System.out.println(hash02);
for(String alumno:hash02.keySet()) {
System.out.println(alumno);
for(int nota:hash02.get(alumno)) {
System.out.println(nota);
}
}
// El primer elemento del alumno "Ana"
System.out.println(hash02.get("Ana").get(0));
}
}