---- ArrayList e metodo equals() ----

di il
3 risposte

---- ArrayList e metodo equals() ----

Ho un grave intoppo con questo blocco di codice, ho provato e riprovato ma proprio non riesco a trovare l'errore.

--------------------------------------------------------------------------------------------------------------------
int contatore=0;
String nome = leggiStringa("Inserire il nome da ricercare: ");
String cognome = leggiStringa("Inserire il cognome da ricercare: ");

for (int i=0; i<c.getListaDipendenti().size(); i++){
if((c.getListaDipendenti().get(i).getNome().equals(nome))&&
(c.getListaDipendenti().get(i).getCognome().equals(cognome)))
{
contatore++;
}
--------------------------------------------------------------------------------------------------------------------
L'ho "estirpato" dal programma di cui non sto a parlare, in particolare chiedo un aiuto sul blocco evidenziato.
Penso sia lì il problema. Il contatore rimane fermo a 0, anche se più volte la condizione dell'if dovrebbe risultare vera.
Penso sia abbastanza leggibile senza allegarvi l'implementazione di alcuni metodi.
Comunque c.getListaDipendenti() ritorna un ArrayList di dipendenti.

3 Risposte

  • Re: ---- ArrayList e metodo equals() ----

    Carmine2898 ha scritto:


    if((c.getListaDipendenti().get(i).getNome().equals(nome))&&
    (c.getListaDipendenti().get(i).getCognome().equals(cognome)))
    Tecnicamente mi pare corretto e non vedo nulla di palesemente errato. E' chiaramente una AND, quindi nome E cognome devono essere quelli inseriti.
    Verifica (in debugging o con dei println) cosa contiene il dipendente i-esimo.

    P.S. sfrutta il for-each di Java 5, il tuo ArrayList è sicuramente parametrizzato (altrimenti quelle due righe non compilerebbero neanche).
  • Re: ---- ArrayList e metodo equals() ----

    Oltre a quanto detto da andbin aggiungo che nome e cognome devono essere esattamente identici a quelli inseriti (maiuscole e minuscole, spazi, caratteri strani, ecc). Quindi:

    "MARIO" è diverso da "Mario", che è diverso da "mario", ecc...
    "Mario" è diverso da "Mario ", che è diverso da " Mario ", ecc...

    Ciao.
  • Re: ---- ArrayList e metodo equals() ----

    LeleFT ha scritto:


    Oltre a quanto detto da andbin aggiungo che nome e cognome devono essere esattamente identici a quelli inseriti (maiuscole e minuscole, spazi, caratteri strani, ecc). Quindi:

    "MARIO" è diverso da "Mario", che è diverso da "mario", ecc...
    "Mario" è diverso da "Mario ", che è diverso da " Mario ", ecc...

    Ciao.
    Sìsì, è chiaro. Non era questo l'errore comunque, ne era uno un po' più stupido ahah
    Il metodo che avevo creato per cercare il dipendente nell'arraylist non aveva nessun parametro in ingresso.
    Praticamente scorreva un arraylist diverso da quello che io riempivo, ne scorreva uno vuoto

    Comunque grazie a tutti delle risposte!
Devi accedere o registrarti per scrivere nel forum
3 risposte