Originariamente inviato da lorenzcollixx
devo al suo interno creare un compareTo rispetto alla matricola che è una stringa
Quindi la tua implementazione non è corretta, in quanto devi basarla sul campo di istanza matricola.

Originariamente inviato da lorenzcollixx
L' altra domanda==> come cambia il compareTo se a parità di matricola avessi dovuto ordinare rispetto al nome dello studente ??
codice:
public int compareTo(Object o) {
        if ( o == null || !(o instanceof Studente) )
            throw new RuntimeException();
       
        Studente s = (Studente) o;
	
        if ( !this.matricola.equals(s.matricola) )
             return this.matricola.compareTo(s.matricola);

	return this.nome.compareTo(s.nome);
}
In questo caso la chiave matricola ha una priorità maggiore rispetto alla chiave nome.

N.B. Se utilizzi la versione 5, ti conviene specificare Studente come parametro di tipo per l'interfaccia Comparable, così ti risparmi il controllo del tipo e cast.