Olá procurando por ordenação de arrayliste consegui esse código:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Classe que implementa a solução do problema de ordenar<br>
* uma lista de objeto.<br>
* <br>
* <code>
* Lista Tipada
* </code>
*
* Onde devemos ordenar por um determinado atributo deste objeto.
*
*/
public class OrdenarLista {
public static void main(String[] args) {
Pessoa p1 = new Pessoa("Vitor Hugo" , 25 , "Masculino");
Pessoa p2 = new Pessoa("Sirley" , 25 , "Feminino");
Pessoa p3 = new Pessoa("Ana Beatriz" , 14 , "Feminino");
List<Pessoa> lista = new ArrayList<Pessoa>();
lista.add(p1);
lista.add(p2);
lista.add(p3);
System.out.println("Lista desordenada");
imprimir(lista);
Collections.sort(lista);
System.out.println("\n Lista ordenada pelo 'Nome'");
imprimir(lista);
}
private static void imprimir(List<Pessoa> lista) {
for(Pessoa pessoa : lista) {
System.out.print("Nome : " + pessoa.nome + " Idade : "
+ pessoa.idade + " Sexo : " + pessoa.sexo);
}
}
}
// Implementa a interface Comparable
class Pessoa implements Comparable<Pessoa> {
String nome;
Integer idade;
String sexo;
public Pessoa(String nome , Integer idade , String sexo) {
this.nome = nome;
this.idade = idade;
this.sexo = sexo;
}
public int compareTo(Pessoa o) {
int valor = nome.compareTo(o.nome);
return (valor != 0 ? valor : 1);
}
}
Esse código funciona perfeitamente para ordenar a listar por ordem alfabética de nome, porém como faço para por exemplo ordenar por idade decrescente e por nome crescente?