Adesso non so bene com'è l'architettura del tuo programma, io procederei in questo modo
Non prenderlo come oro colato perché è una cosa fatto così di getto e quindi non so se potrebbe funzionare, ma è giusto per farti capire l'approccio.
Io farei:
La classe principale con i vari schermi:
La classe Password con l'attributo string Password e un metodo getPassword
La classe Contenitore con i vari metodi
Questo codice nella classe Principale:
public void esegui() {
System.out.println("");
System.out.println("---------------------Benvenuto---------------------");
System.out.println("");
Contenitore contenitore = new Contenitore();
Password p= null;
boolean continua = true;
while (continua) {
int scelta = schermoMenu();
if (scelta == 1) {
P = scermoInserisciPassword();
}else if (scelta == 0) {
System.out.println("Sicuro di voler uscire s/n");
String scelta1 = Console.leggiStringa();
if (scelta1.equals("s")) {
System.out.println (".....Arrivederci.....");
continua = false;
}else if(scelta1.equals("n")) {
continua = true;
}else{
System.out.println(" errore la scelta deve essere s o n");
}
}
}
}
Ovviamente poi uno schermo :
private Password schermoInserisciPassword(Contenitore contenitore) {
System.out.println(" Immetti Password ->");
String Password = Console.leggiStringa();
Password p = contenitore.cercaPassword(password);
if (p !=null) {
System.out.println("Password non Trovate"+" " + p);
}else{
System.out.println("Password Esatta");
p= sottoSchermo() // questo è il tuo ex schermoIniziale
}
return p;
}
nella classe contenitore ci va il metodo cercaPassword(password)
Più una ArrayList di nome listaPassword
public Contenitore cercaPassword(String password) {
for (int i=0; i<listaPassword(); i++) {
password p = getPassword(i);
if(p.getPassword().equals(password)) {
return p;
}
}
return null;
}
Ah dimenticavo schermoMenu è lo schermo iniziale dove hai solo 1.inserisci password
0.Esci
come ti ho già detto non sono sicuro che funzioni al 100% ma il codice su per giù dovrebbe essere questo.