Me autorespondo por si a alguien interesa:
public class Parte {
private String matricula;
private String codigo;
private String descripcion;
private double importe;
public Parte (String matricula,String codigo, String descripcion, double importe){
this.matricula = matricula;
this.codigo = codigo;
this.descripcion = descripcion;
this.importe = importe;
}
public void setMatricula(String matricula){
this.matricula = matricula;
}
public void setCodigo(String codigo){
this.codigo = codigo;
}
public void setDescripcion (String descripcion){
this.descripcion = descripcion;
}
public void setImporte(double importe){
this.importe = importe;
}
public String getMatricula(){
return matricula;
}
public String getCodigo(){
return codigo;
}
public String getDescripcion(){
return descripcion;
}
public double getImporte(){
return importe;
}
}
import java.util.*;
public class GestorPartes {
Hashtable <String, ArrayList<Parte>> ht = new Hashtable<String, ArrayList<Parte>>();
Parte p;
public void crearParte(){
@SuppressWarnings("resource")
Scanner teclado = new Scanner(System.in);
System.out.println("Introduce la matricula del vehiculo: ");
String matricula = teclado.nextLine();
System.out.println("Introduce el codigo de la averia: ");
String codigo = teclado.nextLine();
System.out.println("Introduce la descripcion de la averia: ");
String descripcion = teclado.nextLine();
System.out.println("Introduce el importe de la averia: ");
double importe = teclado.nextDouble();
p = new Parte (matricula,codigo,descripcion,importe);
if (!ht.containsKey(p.getMatricula())){
ArrayList<Parte> ArrPartes = new ArrayList<Parte>();
ht.put(p.getMatricula(), ArrPartes);
ht.get(p.getMatricula()).add(p);
} else
ht.get(p.getMatricula()).add(p);
}
public void mostrar(){
if(ht.containsKey(p.getMatricula())){
ArrayList<Parte> ArrPartes = ht.get(p.getMatricula());
Iterator<Parte> itPart = ArrPartes.iterator();
while (itPart.hasNext()){
Parte p = itPart.next();
System.out.println("========");
System.out.println("Matricula: " + p.getMatricula()+ "\n" +
"Codigo: " + p.getCodigo() + "\n" +
"Descripción: " + p.getDescripcion() + "\n" +
"Importe: " + p.getImporte() + "\n");
}
} else
System.out.println("Objeto no localizado");
}
public void listar(){
Set<String> keysmatri = ht.keySet();
Iterator<String> itMatri = keysmatri.iterator();
while (itMatri.hasNext()){
itMatri.hasNext();
String matricula = itMatri.next();
ArrayList<Parte> ArrPartes = ht.get(matricula);
Iterator<Parte> itPart = ArrPartes.iterator();
while(itPart.hasNext()){
Parte p = itPart.next();
System.out.println("========");
System.out.println("Matricula: " + p.getMatricula()+ "\n" +
"Codigo: " + p.getCodigo() + "\n" +
"Descripción: " + p.getDescripcion() + "\n" +
"Importe: " + p.getImporte() + "\n");
}
}
}
public void eliminar(){
if(ht.containsKey(p.getMatricula())){
ht.get(p.getMatricula()).remove(p);
}
}
}
import java.util.*;
public class Principal {
private static GestorPartes gp = new GestorPartes();
public static void main(String[] args) {
int opcion = 0;
do{
@SuppressWarnings("resource")
Scanner teclado = new Scanner(System.in);
System.out.println("SELECCIONA UNA OPCION......");
System.out.println("[1] CREAR PARTE");
System.out.println("[2] LISTAR PARTE");
System.out.println("[3] ELIMINAR PARTE");
System.out.println("[4] LISTAR TODOS LOS PARTES");
System.out.println("[5] SALIR");
opcion = teclado.nextInt();
switch(opcion){
case 1: gp.crearParte(); break;
case 2: gp.mostrar(); break;
case 3: gp.eliminar(); break;
case 4: gp.listar();
case 5: System.out.println("Fin del Programa"); System.exit(0);
default: System.out.println("Teclea una opcion valida"); break;
}
}while (opcion != 5);
}
}