En esta ocasión les muestro como usar un HashMap en Java. Es una estructura dinámica que permite administrar eficientemente pares de datos: una llave y su valor asociado.
Aquí les comparto la presentación de la teoría:
Y, aunque viene en la presentación, aquí está el ejemplo en Java:
HashMap_12.java
4.54 KiB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
* Ejemplo del uso de un HashMap
*/
import java.util.*;
public class HashMap_12 {
public static void main(String[] args) {
// Declarando el HashMap (nótese que deben ser objetos: Float
// es un objeto que engloa el tipo "primitivo" float)
Map<String,Float> cambios = new HashMap<String,Float>();
// Otras variables y objetos
int op;
Float cambio;
String moneda;
Scanner tec = new Scanner(System.in);
// Todo en un ciclo para repetir las opciones
do {
// Muestro menú y pido opción
System.out.println("MENU DE OPCIONES\n\t1. Agregar tipo de cambio");
System.out.println("\t2. Buscar un tipo de cambio");
System.out.println("\t3. Mostrar lista de tipos de cambios");
System.out.println("\t4. Eliminar un tipo de cambio");
System.out.println("\t5. Mostrar llaves y valores");
System.out.println("\t6. Mostrar número de cambios capturados");
System.out.println("\t7. Eliminar toda la informaci\u00F3n");
System.out.print("\t99. Salir\nOpci\u00F3n: ");
op = tec.nextInt();
tec.nextLine();
// Ejecuto acciones...
switch (op) {
case 1: // Agregar tipo de cambio
// Pido clave y dato
System.out.println("Agregando tipo de cambio");
System.out.print("Escriba la clave del cambio (3 letras): ");
moneda = tec.nextLine();
System.out.print("Escriba el tipo de cambio: ");
cambio = tec.nextFloat();
tec.nextLine();
// Agrego registro al HashMap
cambios.put(moneda, cambio);
break;
case 2: // Buscar tipo de cambio
// Pido clave
System.out.println("Buscando un tipo de cambio");
System.out.print("Escriba la clave del cambio (3 letras): ");
moneda = tec.nextLine();
// Lo busco
cambio = cambios.get(moneda);
if (cambio != null) {
System.out.println("El tipo de cambio es: " + cambio);
} else {
System.out.println("No se ha dado de alta ese tipo de cambio");
}
break;
case 3: // Mostrar lista de tipos de cambios
// Veo todas las claves y las guardo en un Set
Set<String> claves = cambios.keySet();
// Recorro todos los elementos con un for each
System.out.println("Tipos de cambio dados de alta:");
for(String x : claves) {
System.out.print(x + ", ");
}
System.out.println();
break;
case 4: // Eliminar un tipo de cambio
// Pido clave
System.out.println("Eliminar un tipo de cambio");
System.out.print("Escriba la clave del cambio (3 letras): ");
moneda = tec.nextLine();
// Veo si existe
if (cambios.containsKey(moneda)) {
// Elimino la clave y valor
cambios.remove(moneda);
} else {
System.out.println("Esa clave no existe");
}
break;
case 5: // Mostrar claves y cambios (llaves con sus valores)
System.out.println("Lista de claves y cambios:");
System.out.println(cambios.toString());
break;
case 6: // Muestro el número de datos almacenados en el HashMap
System.out.println("Cantidad de cambios dados de alta: " +
cambios.size());
break;
case 7: // Elimina todo el HashMap
System.out.println("Eliminando todo el mapa");
// Eliminar todos los datos
cambios.clear();
break;
case 99:
break;
default:
System.out.println("Opción inv\u00E1lida");
}
} while (op != 99);
}
}
Espero que esto les haya sido de utilidad. ¡Saludos!