ArrayList Ordenação

1 resposta
BrunoBastosPJ

se eu tenho a classe

class Teste{
  private String nome;
  private int idade;
  private float salario;

  //métodos gets e sets
}

e tenho um ArrayList

ArrayList<Teste> array = new ArryaList<Teste>();

com váriios objetos da classe teste. Como eu faço para que ele ordene de acordo com quem tem o maior salário e com quem tem maior idade?

1 Resposta

C

Olá BrunoBastos,

Crie um Comparator para fazer essa comparação que você especificou:

Comparator<Teste> comp = new Comparator<Teste>() {
  public int compare(Teste t1, Teste t2) {
    int cmp1 = t2.getSalario() - t1.getSalario();
    int cmp2 = t2.getIdade() - t2.getIdade();
    return ((cmp1 == 0) ? cmp2 : 0);
    // Alguém sabe uma forma mais "elegante" de se fazer isso aqui em cima?
  }

  public boolean equals(Object o) {
    super.equals(o);
  }
};

e use ele na ordenação:

Collections.sort(array, comp);

Pronto, seu array está ordenado :) Você poderia usar a interface Comparable também, dê uma olhada nela.

Até mais,

Criado 16 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 1
Participantes 2