hola tengo que realizar una aplicación sobre la gestión de partes de un taller mecánico, en la clase partes debe aparecer los métodos: código, descripción e importe. Un parte irá asociado a la matrícula de un coche, la matrícula debe introducirse con provincia, número y letra.
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.");
}
}