Sei sulla pagina 1di 3

/*

* To change this license header, choose License Headers in Project Properties.


* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lab31_hashtable1;

/**
*
* @author CANDO GUTIERREZ JUAN CARLOS
*/
import java.io.*;// Input, entrada de datos; Output, salida de datos
import java.util.*;//util, gestiona la clase Hashtable

public class Lab31_Hashtable1 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
// TODO code application logic here
Hashtable nombres=new Hashtable();
String opcion;
BufferedReader bf=new BufferedReader(new
InputStreamReader(System.in));
do{
System.out.println("Elegir opcion: \n");
System.out.println("1. Añadir nombre: ");
System.out.println("2. Eliminar nombre: ");
System.out.println("3. Mostrar todos los nombres: ");
System.out.println("4. Salir: ");

opcion=bf.readLine();
switch(Integer.parseInt(opcion)){
case 1:
String nom, id;
System.out.println("Ingrese el nombre: ");
nom=bf.readLine ();
System.out.println("id: ");
id=bf.readLine();
almacenaNombre(nom, id, nombres);
break;
case 2:
String d;
System.out.println("Ingrese al id: ");
d=bf.readLine();
eliminarNombre(d, nombres);
break;
case 3:
mostrarTodos(nombres);
break;
}
}
while(!opcion.equals("4"));
}
static void almacenaNombre(String n, String k, Hashtable lista){
if(!lista.containsKey(k)){// containsKey indica si la clave especifica existe o
// no en la coleccion
lista.put(k, n);//Añade a ña coleccion el objeto n, asignandole
//la clave especificada por key. En caso de que exista
//esa clave en la coleccion, el objeto que tenia
//asignada esa clave se sustituyr por el nuevo objeto n,
//devolviendo el objeto sustituido
}
}
static void eliminarNombre(String k, Hashtable lista){
if(lista.containsKey(k)){
lista.remove(k);//Elimina de la coleccion el valor cuya clave k se especifica
//en el parametro. En caso de que no exista ningun objeto con esa
clave,
//no hara nada y devolcera null; si existe, eliminara el objeto
//y el mismo sera decuelto por el metodo remove(9
}
}
static void mostrarTodos(Hashtable lista){
System.out.println("Los nombres son: ");
Enumeration claves=lista.keys();//keys(); devuelve un objeto enumeration que
// permite iterar sobre el conjunto de claves.
while(claves.hasMoreElements()){//hasMoreElements(); Indica si hay mas
elementos
//por recorrer en la coleccion. Cuando el objeto
enumeration
//este apuntando al ultimo elemento, la llamada
// a este metodo devolvera false
String k=(String)claves.nextElement();//nextElement(); La llamada al
//metodo nextElement() sobre un
// objeto Enumeration, provoca que
//este pase a apuntar al siguiente
// objeto de la coleccion, decolviendo
// el nuevo objeto apuntado.
//inicialmente un enumeration se
// encuentra apuntando ala posicion
//que esta antes del primer objeto de
//la coleccion, por lo que la primera llamada
//a nextElement() devolvera el primer
//objeteo
System.out.println(k+ "-"+lista.get(k));//get(), devuelve el valor que tiene
//asociada la clave que se indica en
//el parametro; en caso de que mo
//exista ningun objeto con esa clave
//asociada,devolvera null
}
}
}

Potrebbero piacerti anche