Ordenação de ArrayList de Objetos com a Interface Comparable | Morettic

Ordenação de ArrayList de Objetos com a Interface Comparable

porLuis Augusto Moretto

Ordenação de ArrayList de Objetos com a Interface Comparable

Programação orientada a objetos

Utilizando a interface Comparable

Uma tarefa comum no dia a dia dos desenvolvedores é ordenar uma lista ou array. Para não inventar a roda, a Collections API do Java vem pronta para ajudar nessa tarefa.

Neste post vamos estudar como utilizar a interface para ordenar seus objetos.

Declarando a interface Comparable

Primeiro passo é declarar em nossa classe a implementação da interface Comparable;

Feito isso é necessário implementar o método compareTo. Este método é quem define o critério de ordenação.

No exemplo estamos definindo a regra de ordenação para a Classe Pessoa. O critério definido ordena os objetos por nome.

public class Pessoa implements Serializable, Comparable {

   private String nome, cpf, rg;

    .........(Gets & sets & Construtor)................

  @Override
    public int compareTo(Pessoa o) {
        return this.nome.compareTo(o.getNome());
    }
}

Ordenando um ArrayList

Agora que a classe Pessoa possui um critério de ordenação podemos ordenar uma lista.

No exemplo abaixo iremos criar 3 pessoas adicionar na lista e ordenar os elementos. A lista estará ordenada a partir do momento que for chamado o método estático da classe Collections.sort(list);


Pessoa p1 = new Pessoa("Joao");
Pessoa p2 = new Pessoa("Mario");
Pessoa p3 = new Pessoa("Emerson");
Pessoa p4 = new Pessoa("Patricia");
Pessoa p5 = new Pessoa("Karla");

ArrayList lista = new ArrayList();

lista.add(p1);
lista.add(p2);
lista.add(p3);
lista.add(p4);
Collections.sort(lista); for(Pessoa p:lista){ //Exibe de forma ordenada }

Dúvidas? Deixe sua mensagem abaixo.