Desculpe a demora … to meio enrolado aqui … mas vamos lá … chega de blá blá blá.
[code]public class Pessoa implements Comparable{
private int cod;
private String nome;
private String cpf;
public Pessoa(int cod, String nome, String cpf) {
this.cod = cod;
this.nome = nome;
this.cpf = cpf;
}
//get e sets
public String toString(){
return cod + " " + nome + " " + cpf;
}
//Este método faz a comparação para ordenar naturalmente
public int compareTo(Pessoa objeto){
return this.cod - objeto.cod;
}
}[/code]
Para testar esse exemplo segue essa classe.
[code]public class TesteCompareTo {
public static void main(String[] args) {
Pessoa people1 = new Pessoa(1528, “Fabiano Fernande”, “015.654.854-54”);
Pessoa people2 = new Pessoa(1321, “Richard Cliver”, “879.456.321-87”);
Pessoa people3 = new Pessoa(111, “Fulano de Tal”, “321.654.987-12”);
Pessoa people4 = new Pessoa(1321, “Ciclano da Silva”, “987.654.321-78”);
comparaPessoa(people1, people2, people3, people4);
comparaPessoa(people2, people1, people3, people4);
comparaPessoa(people4, people3, people2, people1);
comparaPessoa(people3, people2, people1, people4);
}
public static void comparaPessoa(Pessoa... pessoas) {
Pessoa position = pessoas[0];
System.out.println("A pessoa " + position.getNome());
for (int i = 1; i < pessoas.length; i++) {
if (position.compareTo(pessoas[i]) > 0)
System.out.println("\tÉ maior que a pessoa "
+ pessoas[i].getNome());
else if (position.compareTo(pessoas[i]) < 0)
System.out.println("\tÉ menor que a pessoa "
+ pessoas[i].getNome());
else if (position.compareTo(pessoas[i]) == 0)
System.out.println("\tÉ igual a pessoa "
+ pessoas[i].getNome());
}
}
}
[/code]
Repare no método comparaPessoa
:arrow: Se o campo cod do objeto for menor que o mesmo campo do objeto passado, então retorna-se um número estritamente negativo, indicando que este objeto é “menor” que o objeto passado
:arrow: Se o campo cod deste objeto for maior que o mesmo campo do objeto passado, então retorna-se um número estritamente positivo, indicando que este objeto é “maior” que o objeto passado
:arrow: Se o campo cod deste objeto for igual ao mesmo campo do objeto passado, então retorna-se o número zero, indicando que este objeto é “igual” ao objeto passado.
Espero que com esse exemplo e essas observações fique mais facil você implementar a sua lógica.
Qualquer outra dúvida ou esclarecimento grita ai q tentamos ajudar
OK
:lol: