Primeiro passo, crie um Comparator que compare o objeto pelo campo que você deseja ordenar:
O comparator deve retornar 0 se os objetos forem iguais, algo menor que zero se o objeto 1 for menor que o 2 e algo maior que zero se o objeto 1 for maior que o objeto 2.
public class NomeComparator implements Comparator<SuaClasse>
{
public int compareTo(SuaClasse o1, SuaClasse o2) {
return Collator.getInstance().compareTo(o1.getNome(), o2.getNome());
}
}
public class IdadeComparator implements Comparator<SuaClasse>
{
public int compareTo(SuaClasse o1, SuaClasse o2) {
return o1.getIdade() - o2.getIdade();
}
}
Depois, chame o sort usando esse comparator.
Collections.sort(seuArrayList, new NomeComparator()); //Ordena por nome
Collections.sort(seuArrayList, new IdadeComparator()); //Ordena por idade
Outra alternativa ao Comparator é, caso sua classe possua uma ordem default, fazer a classe implementar a interface Comparable.