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.
il problema è che se nome e cognome coincidono,il compareTo non mi compara l'eta..perchè?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); } }![]()

Rispondi quotando