Caras, tenho um array lista de um objeto contato, por exemplo, com codigo, nome, cidade e estado. Preciso ordenar esses caras de modo a imprimir agrupados por cidade e por estado. Achei muita coisa sobre ordenar arraylist mas todos ordenando apenas por um atributo.
Cara nesse caso você teria uma “árvore” tipo, um Map com os estados que esses Estados contém uma Map de Cidades que contém uma lista de contratos!
O certo seria implementar um Comparator para cada tipo de ordenação, uma para estado e outro para cidades!
Sacou?!
Basta implementar um Comparator que leve em consideração esses dois atributos:
public ContatoComparator implements Comparator<Contato>()
{
public int compare(Contato c1, Contato c2) {
int estado = c1.getEstado().compareTo(c2.getEstado());
if (estado != 0) {
return estado;
}
//Se os estados são iguais, ordena pela cidade
return c1.getCidade().compareTo(c2.getCidade());
}
}