Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
eliminaProducto(codigo, listaProductos);
3
break;
3
case 5:
4
break; // Si la opcion es 5 no se hace nada
3
default:
5
System.out.println("Tienes que introducir una opcin valida");
3
}
6
3
}
7 }
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
2
3
4
5
6
7
8
listaProductos){
if (listaProductos.containsKey(codigo)){
System.out.println("No se puede introducir el producto. El cdigo esta repetido.");
}
else{
listaProductos.put(codigo, precio);
}
}
1
public static void modificaPrecio(String codigo, HashMap<String,Float> listaProductos){
2
Scanner sc = new Scanner(System.in);
3
if (listaProductos.containsKey(codigo)){
4
System.out.println("Introduce el precio del producto:");
5
listaProductos.put(codigo, sc.nextFloat());
6
}
7
else{
8
System.out.println("No hay ningun producto con ese cdigo.");
9
}
1
}
0
esta forma hay que crear una variable de tipo Map.Entry para almacenar el
elemento y con los mtodos getKey() y getValue() de Map.Entry se obtienen los
valores. Nota: Se puede usar un iterador del tipo que vamos a cojer en este
caso Map.Entry de la misma forma que se hizo en el mtodo anterior, o sino
usar un iterador genrico y luego hacer el casting a Map.Entry.
1
public static void mostrarProductos2(HashMap<String, Float> listaProductos){
2
Iterator iterador = listaProductos.entrySet().iterator();
3
//Iterator<Map.Entry<String, Float>> iterador = listaProductos.entrySet().iterator();
4
Map.Entry producto;
5
while (iterador.hasNext()) {
6
producto = (Map.Entry) iterador.next();
7
//producto = iterador.next(); Si se usase tambien la otra linea comentada.
8
System.out.println(producto.getKey() + " - " + producto.getValue());
9
}
1
}
0
Con esta segunda forma es necesario usar una variable Map.Entry y realizar el
import pertinente, pero el resultado es el mismo y el numero de lneas de
cdigo es igual, aunque esta segunda forma supongo que sea ms eficiente
puesto que mientras que en la primera solo obtenemos la clave y luego hay que
buscar el contenido asociado con la funcin get(clave) con esta segunda forma
ya tenemos ambos valores y no hay que realizar esa bsqueda adicional,
aunque quizs la primera forma sea mas sencilla.
Y finalmente la funcin para eliminar un producto, en la que primero
comprobamos que exista un elemento con la clave pasada y si es as se elimina
con la funcin remove(clave).