Olá pessoa, acho que o título do post já diz tudo hehehehe.
Tava resolvendo um exercício e o enunciado era para ordenar uma lista contendo objetos de uma classe, através de um atributo da classe.
Implementei da seguinte forma, e gostaria de saber o que vcs acham, se tá bom, ou poderia ser melhor!
Classe a ser ordenada a partir do atributo saldo:
public class Pessoa {
public String nome;
public double saldo;
public Pessoa (String n, double s) {
nome = n;
saldo = s;
}
public double getSaldo() {
return saldo;
}
}
Método para a ordenação, de acordo com o saldo.
public List<Pessoa> ordenaPorSaldo(List<Pessoa> lista) {
List<Pessoa> listaAux = new ArrayList<Pessoa>();
int tamanho = lista.size();
for (int i = 0; i < tamanho; i++) {
listaAux.add(obtemMenorSaldo(lista));
}
return listaAux;
}
private Pessoa obtemMenorSaldo(List<Pessoa> lista) {
double menor = Double.MAX_VALUE;
int pos = 0;
for (int i = 0; i < lista.size(); i++) {
if (lista.get(i).getSaldo() < menor) {
menor = lista.get(i).getSaldo();
pos = i;
}
}
Pessoa p = lista.get(pos);
lista.remove(pos);
return p;
}
Sei que a Collections usa o mergeSort para fazer a ordenação, mas ia ficar complicado fazer de cabeça hehe.
Vlw!