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.
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());
}
}
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.