View Full Version : Metter in relazione due file in java
Salve a tutti...ho fatto un programmino abbastanza semplice in java ma ho un problema. Ho creato due classi (esempio: classe Paziente con codice fiscale,nome e cognome e una classe Esami con codice fiscale nomeEsame e DataEsame) e nel gestore dovrei creare un metodo in cui dato per esempio il nome del paziente mi riporti tutti gli esami fatti dallo stesso....il fatto è che i due file sono collegati tra loro solo tramite il codice fiscale per cui se fosse "dato il codice fiscale riportare gli esami del paziente" sarebbe tutt apposto, ma dando in input il nome o il cognome come si dovrebbe fare? Non so se mi sono spiegato bene...:D
Hai la classe Paziente e la classe Esami, giusto?
In che modo intendi memorizzare la collezione degli elementi Paziente ed Esami?
Comunque, supponendo che tu già ci abbia pensato, nella collezione dei Pazienti dovresti fare una ricerca per Nome e Cognome per farti restituire il codice fiscale corrispondente, con questo dovresti accedere alle collezione degli Esami e farti restituire tutti gli esami del paziente corrispondente.
ciao...li ho messi in arrayList...questo è il metodo che ho fatto....
codice:
public Gestore filterByNome(String s){
ArrayList<Paziente>tmp = new ArrayList<Paziente>();
ArrayList<Esame>tmp1 = new ArrayList<Esame>();
for(Paziente p : pazienti)
if(p.getNome().equalsIgnoreCase(s) )
tmp.add(p);
return new Gestore(tmp,tmp1);
}
così come è adesso, dato in input il nome ad esempio mi stampa codice fiscale,nome,cognome del paziente ma io vorrei far uscire la lista di esami che ha sostenuto il paziente che si trova nell'altro ArrayList...
come mi consigli di modificarlo?
Per ora facciamolo come hai fatto tu.
Nell'arraylist dei pazienti quindi puoi avere anche pazienti duplicati visto che cerchi per nome, io ti direi di ciclare nell'arraylist dei tmp, farti restituire il CF e con quello cercare all'interno dell'arraylist degli esami, così come hai già fatto per i pazienti, e farti stampare le informazioni.
Qualcosa di simile a questo.
ArrayList<Paziente>tmp = new ArrayList<Paziente>();
for(Paziente p : pazienti)
if(p.getNome().equalsIgnoreCase(s) )
tmp.add(p);
for(Paziente p : tmp)
for (Esame e : esami)
if(e.getCodiceFiscale.equalsIgnoreCase(p.getCodiceFiscale()))
System.out.println(e)
Secondo me, ci sono modi migliori per farlo, ad esempio, per gli esami userei un oggetto della classe Map in modo da indicizzare per codice fiscale ed usare come valore un array list contenente tutti gli esami per quel paziente.
Sempre supponendo che il CF sia univoco, cosa che non è garantita.
grazie mille era proprio quello che cercavo!! :D funziona perfettamente. Si lo so che si potrebbe fare in altri modi anche più eleganti però ci arriverò per gradi...per ora mi accontento di questo. Però ora che il programma è finito ho cercato di creare un eseguibile per windows. Ho fatto l'export del programma come Runnable jar file e viene creato un file jar sul desktop che però non funziona....cioè inizia a caricare come se volesse partire e poi non succede niente...mentre funziona perfettamente se lo eseguo tramite prompt dei comandi con il comando "java -jar nomeProgramma.jar" . Non riesco a capire il perchè tramite prompt si e direttamente dal desktop no...:muro:
Puoi guardare la risposta "Running Jar file in Windows (http://stackoverflow.com/questions/394616/running-jar-file-in-windows)" su stackoverflow.
ho provato le diverse soluzioni riportate nel sito linkato ma niente...quando faccio doppio click sul file .jar non succede mai niente!! :muro: :muro:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.