Ciao a tutti,
sto realizzando una classe archivio che descrive una collezione di dizionari con vari metodi per l'inserimento, la rimozione e la ricerca nel dizionario.
Tuttavia il metodo per l'inserimento mi restituisce "null" come risultato e non capisco perché, errori non ce ne sono...![]()
Qualcuno mi può correggere il codice e spiegarmi perché nn va bene?
Grazie mille
classe Archiviocodice:import java.util.Vector; public class Archivio { private static Vector <Dizionario> archivioDizionari = new Vector<Dizionario>(); /** * Costruttore */ public Archivio(){ this.archivioDizionari=archivioDizionari; } public static void main(String[] args) { char scelta; // ciclo principale do{ scelta=menuPrincipale(); switch(scelta){ case 'V': case'v': visualizzaDizionario ();break; case 'S': case's': selezioneDizionario();break; case 'I': case'i': inserimentoDizionario (nuovoDizionario);break; case 'C': case'c': rimozioneDizionario ();break; } }while(scelta!='e' && scelta!='E'); System.out.println("\nBye!"); } // metodo che carica il menu principale public static char menuPrincipale(){ String ok="VvIiCcRrSsUueE"; char scelta; do{ System.out.println("|| MENU' PRINCIPALE ||"); System.out.println(""); System.out.println("[V/v] Visualizza i dizionari"); System.out.println("[S/s] Seleziona un dizionario"); System.out.println("[I/i] Inserisci un nuovo dizionario"); System.out.println("[C/c] Rimuovi un dizionario"); System.out.println("[R/r] Esegui una ricerca"); System.out.println("[S/s] Salva la collezione di dizionari "); System.out.println("[U/u] Fai l'upload di una nuova collezione"); System.out.println("[e/E] Arrivederci!"); System.out.println(""); scelta=Input.readChar("fai la tua scelta:"); }while(ok.indexOf(scelta)<0); return scelta; } // metodo per la selezione del dizionario public static void selezioneDizionario(){ if(archivioDizionari.isEmpty()==true){ System.out.println("non ci sono dizionari, inserisci un nuovo dizionario"); menuPrincipale(); } else{ String nome=Input.readString("Inserisci il nome del dizionario da cercare:"); ricercaNome(archivioDizionari,nome); menuDizionario(); } } //metodo per la visualizzazione dei dizionari public static void visualizzaDizionario(){ if(archivioDizionari.isEmpty()==true){ System.out.println("non ci sono dizionari, inserisci un nuovo dizionario"); menuPrincipale(); } else{ for(int pos=0; pos<=archivioDizionari.size();pos++) System.out.print(archivioDizionari.indexOf(pos)+" "+archivioDizionari.get(pos).getNomeDizionario()); menuPrincipale(); } } // metodo per ricerca per nome public static boolean ricercaNome(Vector <Dizionario> archivioDizionari, String nome){ boolean nonTrovato=true; for(int i=0; i<archivioDizionari.size() && nonTrovato; i++){ Dizionario d=archivioDizionari.elementAt(i); if(d.getNomeDizionario().equals(nome.trim())){ nome=d.getNomeDizionario(); } } if(nonTrovato){ System.out.println("Parola non trovata!"); } return nonTrovato; } // metodo per l'inserimento di un dizionario public static boolean inserimento(int pos, Dizionario nuovoDizionario){ if(pos<0 || pos> archivioDizionari.size() ||archivioDizionari==null) { return false; } else { archivioDizionari.add(pos, nuovoDizionario); return true; } } // metodo statico per l'inserimento di un dizionario public static void inserimentoDizionario(Vector <archivioDizionari> nuovoDizionario){ // metodo statico per l'inserimento int pos=Input.readInt("Dammi una posizione valida: "); while (pos<0 || pos> archivioDizionari.size() ||archivioDizionari==null) { nuovoDizionario=Dizionario.leggiDizionario(); inserimento(pos, nuovoDizionario); System.out.println(nuovoDizionario.getNomeDizionario()); menuPrincipale(); } } // metodo per la selezione del dizionario // metodo per la rimozione di un dizionario public static void rimozioneDizionario(){ if(archivioDizionari.isEmpty()==true){ System.out.println("non ci sono dizionari, inserisci un nuovo dizionario"); menuPrincipale(); } else { String nome=Input.readString("Inserisci il nome del dizionario da cercare:"); ricercaNome(archivioDizionari,nome); System.out.println(); char opz=Input.readChar("Sei sicuro di voler rimuovere il dizionario"+nome+"? s/n"); if(opz=='s'){ archivioDizionari.remove(nome); System.out.println("Hai rimosso il dizionario"); menuPrincipale(); } else{System.out.println("Non hai rimosso il dizionario, torna al menù principale"); menuPrincipale();} } } // metodo menu dizionario public static char menuDizionario(){ String ok="AaCcRrVveE"; char sceltaDizionario; do{ System.out.println("|| MENU' DEL DIZIONARIO ||"); System.out.println(""); System.out.println("[A/a] Aggiungi un nuovo lemma"); System.out.println("[C/c] Rimuovi un lemma"); System.out.println("[R/r] Esegui una ricerca"); System.out.println("[V/v] Visualizza la lista dei lemmi"); System.out.println("[e/E] Arrivederci!"); sceltaDizionario=Input.readChar("fai la tua scelta:"); }while(ok.indexOf(sceltaDizionario)<0); return sceltaDizionario; } // metodo inserimento lemmi // metodo visualizza lemmi // metodo rimozione lemmi // metodo menu ricerca lemmi public static void cicloRicerca(){ String nome=Input.readString("Inserisci il nome del dizionario desiderato:"); char scelta; // ciclo principale if(ricercaNome(archivioDizionari, nome)){ do{ scelta=menuLemmaRicerca(); switch(scelta){ case 'L': case'l': ;break; case 'N': case'n':;break; case 'D': case'd':;break; case 'S': case's':;break; case 'C': case'c':;break; case 'E': case'e':;break; } }while(scelta!='e' && scelta!='E'); System.out.println("\nBye!"); } } public static char menuLemmaRicerca(){ String ok="LlTtDdSsCceE"; char cerca; do{ System.out.println("|| OPZIONI DI RICERCA ||"); System.out.println(""); System.out.println("[L/l] Cerca per lingua"); System.out.println("[N/n] Cerca per nome"); System.out.println("[D/d] Cerca per descrizione"); System.out.println("[S/s] Cerca per sinonimo"); System.out.println("[C/c] Cerca per contrario"); System.out.println("[e/E] Arrivederci!"); cerca=Input.readChar("fai la tua scelta:"); }while(ok.indexOf(cerca)<0); return cerca; } // ricerca nome lemma public static void ricercaLemmaDizionario(Dizionario nuovoDizionario,String parola){ } // ricerca descrizione lemma // ricerca sinonimi lemma // ricerca contrari lemma // ricerca lingua lemma public Vector<Dizionario> ricercaLingua(String lingua){ // da utilizzare per ricerche multiple(Ë il risulatato della ricerca come vettore che puÚ essere utilizzato per filtrare ulterioremnete i risultati) return ricercaLingua(archivioDizionari,lingua); } public static Vector ricercaLingua(Vector <Dizionario> archivioDizionari, String lingua){ Vector<Dizionario> vettoreLingua = new Vector<Dizionario>(); boolean nonTrovato=true; for(int i=0; i<archivioDizionari.size() && nonTrovato; i++){ Dizionario d=archivioDizionari.elementAt(i); if(d.getNomeDizionario().equals(lingua.trim())){ lingua=d.getLinguaDizionario(); // stampa la lista dei dizionari con quella lingua } } if(nonTrovato){ System.out.println("Non ci sono dizionari in lingua"+" "+lingua+"torna al menu principale ");menuPrincipale(); } return vettoreLingua; } // menu filtra ricerche // metodo per il salvataggio // metodo per l'upload // }

Rispondi quotando