El metodo main debe mostrará un menú de opciones por consola: crear, listar, mostrar, eliminar partes y salir.
Tras crear las Clases matricula, partes, gestión y Actividad (main), a la hora de mostrar un parte en concreto, por ejemplo introduzco una matricula, la consulto en el Hashmap y si esta se encuentra se imprime por pantalla, aquí tengo el problema no se como realizarlo.
Código:
import java.util.*; public class Gestion { HashMap<Matricula,ArrayList<Partes>> HashPartes = new HashMap<Matricula,ArrayList<Partes>>(); Matricula mat; public void anadirParte(){ Partes parte; System.out.println("Introduce la matricula:"); Matricula m = anadirMatricula(); System.out.println("Introduce el código del parte:"); String codigo = Lector.leerString(); System.out.println("Introduce la descripción del parte:"); String descripcion = Lector.leerString(); System.out.println("Introduce el importe del parte:"); double importe = Lector.leerDouble(); parte = new Partes(m,codigo, descripcion,importe); if (HashPartes.containsKey(parte.getMatricula())){ ArrayList<Partes> ArrPartes = new ArrayList<Partes>(); HashPartes.put(parte.getMatricula(), ArrPartes); HashPartes.get(parte.getMatricula()).add(parte); } else{ HashPartes.get(parte.getMatricula()).add(parte);} Iterator<Matricula> it = HashPartes.keySet().iterator(); while (it.hasNext()){ Matricula key = it.next(); System.out.println("datos amtricula: "+ key + "--Valor " + HashPartes.get(key)); } System.out.println("numero de registros: " + HashPartes.size()); System.out.println("datos registrados: " + HashPartes.keySet()); } // metodo añadir matricula private Matricula anadirMatricula() { String provincia=""; int numero=0; String letra=""; System.out.println("Introduce la letra asociada a la provincia"); provincia = Lector.leerString(); System.out.println("Introduce el número de la matrícula"); numero = Lector.leerInt(); System.out.println("Introduce las letras del final de la matrícula"); letra=Lector.leerString(); Matricula m = new Matricula(provincia,numero,letra); return m; } public void mostrar(){ // introducimos una matricula para despues comprobar si esta guardada Matricula matr = anadirMatricula(); // si la matricula est aguardada la mostramso por pantalla if(!HashPartes.containsKey(matr)){ // aqui tengo el problema. } else System.out.println("Objeto no localizado"); } public void listar(){ //Primero comprobamos que el HashMap no está vacío. System.out.println("LISTADO COMPLETO DE PARTES \n ========"); if(HashPartes.size()!= 0){ //Recorremos las claves por matrícula Set<Matricula> keysmatri = HashPartes.keySet(); Iterator<Matricula> itMatri = keysmatri.iterator(); while (itMatri.hasNext()){ itMatri.hasNext(); Matricula m = itMatri.next(); //Y por cada matrícula, recorremos el array de partes ArrayList<Partes> ArrPartes = HashPartes.get(m); Iterator<Partes> itPart = ArrPartes.iterator(); while(itPart.hasNext()){ Partes p = itPart.next(); System.out.println("========"); System.out.println("Matricula: " + p.getMatricula().getProvincia() +"-"+ p.getMatricula().getNumero()+"-"+p.getMatricula().getLetra() + "\n" + "Codigo: " + p.getCodigo() + "\n" + "Descripción: " + p.getDescripcion() + "\n" + "Importe: " + p.getImporte() + " Euros."+ "\n"); } } }else{ System.out.println("No hay partes para esta matrícula o la matrícula no existe."); } }