Pessoal, estou com um problema, eu tenho uma classe assim:
public class DTO_CentroDistribuicao_ctd{
private double distanciaPedido;
private int ctd_CentroDistribuicao_int_PK;
private String ctd_Nome_chr;
private String ctd_Endereco;
private String ctd_Numero;
private String ctd_Complemento;
//get set, get set....
}
Eu faco uma consulta no meu DB e retorno uma List<DTO_CentroDistribuicao_ctd> populada com N posicoes.
Oque eu quero fazer eh ordenar esta lista pela coluna distanciaPedido do tipo Double.
Li a respeito e fiquei sabendo que com o Comparator eh bem facinho. Estou fazendo assim mais esta dando errado:
Leandro você já tentou orderna usando o ORDER BY no sql? Acho que para ordernar isso é mais facil. Mas vendo o seu código e o que eu entendi, o Collections.sort() já ordena para você.
Entao mano, este atributo do tipo double ele eh o unico que nao vem do DB :/, eu pego um valor e vou em outra aplicacao e pego o resultado e guardo nesta variavel.
Entao eu nao posso fazer o order by pelo sql…vlvv a ajuda.
O seu código parece excelente à primeira vista. não fosse o fato de estar comparando double. Doubles não se comparam assim. Esse é o problema.
Para comparar double ou Double, vc deve usar Double.compare().
O codigo deve ser portanto
Collections.sort(listCentro,new Comparator<DTO.DTO_CentroDistribuicao_ctd>(){
public int compare(DTO.DTO_CentroDistribuicao_ctd o1, DTO.DTO_CentroDistribuicao_ctd o2){
return Double.compare(o1.getDistanciaPedido(),o2.getDistanciaPedido());
}
});