Ciao stao privando a fare una classe di prova per comparare nome,cognome ed eta di una lista di persone.In particolare se nome e cognome coincidono devo comparare l'eta.

codice:
import java.util.*;
class Persona implements Comparable<Persona>{
String nome;
String cognome;
int eta;
Persona(String nome,String cognome,int eta){
this.nome=nome;
this.cognome=cognome;
this.eta=eta;
}
public int compareTo(Persona e){
int r=nome.compareTo(e.nome);
if(r==0) {
r=cognome.compareTo(e.cognome);
}else if(nome.equals(cognome)){
r=eta-e.eta;
}
return r;
}
public boolean equals(Object o){
    String u=(String)o;
    return nome.equals(u);
}
public String toString(){
    return ""+nome+","+cognome+","+eta;
}

public static void main(String args[]){
Persona e=new Persona("elena","koiploih",23);
Persona e1=newPersona("alessio","alessio",50);
Persona e2=new Persona("zalone","airoldi",30);
ArrayList<Persona>lista=new ArrayList<Persona>();
lista.add(e);
lista.add(e1);
lista.add(e2);
Collections.sort(lista);
System.out.println(lista);
}
}
il problema è che se nome e cognome coincidono,il compareTo non mi compara l'eta..perchè?