Boa tarde pessoal, preciso ordenar um arraylist pelo número de lampadas de um cômodo.
Criei uma interface, e nela tenho:
private ArrayList<Imovel> imoveis = new ArrayList();
depois imprimo este arraylist:
areaRelatorio.setText("Relatório:");
for (Imovel imovel : imoveis) {
areaRelatorio.append("\n" + imovel.listar());
Dentro deste arraylist, tem um outro arraylist de comodo, que está implementado em um classe chamada Imovel:
public class Imovel {
protected ArrayList<Comodo> comodos = new ArrayList();
public void addComodo(Comodo c) {
comodos.add(c);
}
}
E tenho a classe comodo:
public class Comodo {
private int lampadas;
public int calcLampadas() {
return lampadas;
}
}
Quer dizer, eu cadastro os dados de um imovel, e guardo em um arraylist, depois cadastro os comodos para este imovel, e guardo o comodo em um arraylist dentro do imovel selecionado.
Seguindo os cadastros, faço a impressão na tela dos dados cadastrados;
Um imovel terá varios comodos, porém na hora de imprimir os comodos, tem que vir em ordem decrescente de número de lampadas.
Isto é, eu cadastro em comodo o numero de lampadas que este vai ter.
A questão é, quando mando imprimir o arraylist de imoveis, vai ser imprimido pela ordem de cadastro.
Como faço pra ordenar o arraylist por comodo pela ordem decrescente do numero de lampadas.
Sei que tenho usar Collections.sort( arraylist, ComparatorTo, mas não to conseguindo implementar esse comparador, tem alguma outra forma?
Já pesquisei em vários tópicos, mas não entendi como implementar no meu caso, que tenho dois arraylist.
Se puderem me dar um help, uma dica ou um caminho. Agradeço.
PS.: Tentei simplificar pois o código é grande.