Foro de elhacker.net

Programación => Java => Mensaje iniciado por: m@o_614 en 3 Febrero 2015, 01:52 am



Título: HashMap
Publicado por: m@o_614 en 3 Febrero 2015, 01:52 am
Saludos

Tengo el siguiente codigo que se trata de implementar una clase administradora de objetos que utiliza un HashMap. Para esto tengo una clase administradora en la que tengo tres métodos, uno para agregar una tupla, otro para obtener una tupla y otro para eliminar una tupla. El programa me tiene que imprimir algo como:

1         |    CC317    | matematicas   
.....
.....

Pero ahora tengo que crear un método que devuelva una cadena con todas las tuplas de la tabla, no importa que sea en desorden. considerando que es posible que se hayan eliminado tuplas. Para eso tengo que usar un método de la HashMap que me devuelva una enumeration o un Iterator con las llaves existentes.

Código
  1. import java.util.*;
  2.  
  3. class claseAdministradora
  4. {
  5. private HashMap<Integer, Materia> registro = new HashMap<Integer, Materia>();
  6. private int id_secuencial = 1;
  7.  
  8. public int agregaTupla(String clave,String nombre)
  9. {
  10. Materia materia = new Materia(clave,nombre);
  11. registro.put(id_secuencial,materia);
  12. id_secuencial++;
  13. return id_secuencial;
  14. }
  15.  
  16. public Materia obtenerTupla(int id)
  17. {
  18. Materia materia;
  19. materia = registro.get(id);
  20. return materia;
  21. }
  22.  
  23. public void eliminarTupla(int id)
  24. {
  25. registro.remove(id);
  26. }
  27.  
  28. public String imprimirTupla()
  29. {
  30. Iterator<String> tabla = registro.entrySet().iterator();
  31. return "";
  32. }
  33. }
  34.  
  35. class Materia{
  36. public String clave_materia;
  37. public String nombre_materia;
  38.  
  39. Materia(String clave,String nombre_materia)
  40. {
  41. this.clave_materia = clave;
  42. this.nombre_materia = nombre_materia;
  43. }
  44. }
  45.  
  46. public class tablaHash {
  47.  
  48. public static void main(String[] args) {
  49. claseAdministradora tupla = new claseAdministradora();
  50. tupla.agregaTupla("CC317","matematicas");
  51. tupla.agregaTupla("CC320","español");
  52. tupla.agregaTupla("CC415","fisica");
  53. tupla.eliminarTupla(1);
  54. }
  55.  
  56. }
  57.  

el problema es que no se como implementar la función que me imprima todas las tuplas

alguna sugerencia?? de antemano gracias


Título: Re: HashMap
Publicado por: Usuario Invitado en 3 Febrero 2015, 02:22 am
entrySet() retorna un objeto Set con los entradas del mapa. Map.Entry<String, String> entry, representa la entrada (Entry) actual del Set de entradas devuelto a partir del objeto Map por medio del método entrySet().

Ahora, por medio del objeto Entry, podemos usar los métodos getKey() y getValue() para obtener la llave y el valor asociado de la entrada actual.

Código
  1. for (Map.Entry<String, String> entry : tupla.obtenerTupla().entrySet()) {
  2.    System.out.println("Llave: " + entry.getKey() + " Valor: " + entry.getValue());
  3. }