Quote Originariamente inviata da Alex'87 Visualizza il messaggio
Il controllo di non nullità si fa in modo più semplice: if (brani[c+1] != null) { ... }

Comunque un for al posto del while sarebbe più comodo qui... E per favore inizia a usare dei nomi migliori: c e d sono terribili (non si capisce cosa contengano)
Con la condizione brani[c+1]!=null funziona, grazie Alex!
Sulle variabili hai perfettamente ragione ma su questo spesso uso nomi corti, poi quando il programma funziona mi adeguo: c per contatore e d per dimensione comunque.

Quote Originariamente inviata da andbin Visualizza il messaggio
Innanzitutto questo equals non ha granché senso (anzi quasi nulla). Innanzitutto bisogna vedere se nella classe Brano hai ridefinito equals oppure no. Se non l'hai fatto, resta il equals ereditato da Object, che si basa solo sul confronto dei reference dei due oggetti (il this e l'argomento di equals).

Se è il equals di Object, brani[c+1].equals(null) in teoria vorrebbe concettualmente dire: true se brani[c+1] è null. Ma attenzione: se brani[c+1] è null, allora NON potresti invocarci equals! Ed è questo che non ha senso.
Meno male che i compilatori non mi possono insultare!
mmm, fare l'@Override delle funzioni mi incuriosisce (per ora lo faccio solo sul toString): appena ho tempo ci provo.