import java.util.*;
public class testPerson{
public static void main(String[] args){
person Albert = new person(1);
person James = new person(2);
person Elizabeth = new person(3);
person [] personArray = new person[3];
personArray[0] = Albert;
personArray[1] = James;
personArray[2] = Elizabeth;
Arrays.sort(personArray);
System.out.println(personArray[0].number);
System.out.println(personArray[1].number);
System.out.println(personArray[2].number);
}
}
public class person implements Comparable{
int number;
public person(int number){
this.number = number;
}
public int compareTo(Object o){
if(!(o instanceof person)){
System.out.println("error");
System.exit(1);
person newObject = (person) o;
if (this.number > newObject.number){
return 1;
}
else if(this.number == newObject.number){
return 0;
}
}
return -1;
}
}
Je suis confus quant à la raison pour laquelle la sortie est triée en arrière: 3,2,1. Ma méthode compareTo renvoie un nombre positif quand this.number> number, donc ne devrait-il pas s'assurer que les nombres sont triés dans l'ordre - du plus petit au plus grand? MerciComparable Java Commande
Si je lis la plus externe 'if' dans votre déclaration' compareTo' correctement, ressemble à la méthode retourne toujours -1 ... – mazaneicha
Protip - 'Comparable' wi ll travaille beaucoup mieux que 'Comparable' ici –
Mshnik
Oh, vous avez raison. Merci! – aaa