Ordenação compareTo

Estou tentando usar o compareTo para organizar um vetor de objetos da seguinte maneira:


public void  Ordena(){
  Paciente Aux[] = new Paciente[Limite];

for (int i=0; i<getCont(); i++) { 
  Aux[i] = new Paciente(); 
      for (int j=1; j<getCont(); j++){ 
        if (1==Quartos[i].getMotivo().compareTo(Quartos[j].getMotivo())){ 
           Aux[i]=Quartos[j];  //aqui 
           Aux[i+1]=Quartos[i]; //aqui 
        } 
          else 
   Aux[i]=Quartos[i]; //aqui 
   Aux[i+1]=Quartos[j]; //aqui 
          
     } 
 }  
}

O objetivo do codigo é deixar o vetor em ordem alfabetica.
Se a afirmação do if for verdadeira a primeira String vem depois da segunda na ordem alfabetica. Ate ai tudo certo. Mas meu problema infelizmente esta na logica não consigo fazer o objeto ficar ordenado por causa das partes onde tem o comentario “aqui”. Antes que alguem pergunte é sim um exercio de aula que estou a dois dias quebrando a cabeça e ate o momento não consegui resolver.
Grato pela atenção de todos.

Bem o código tá meio confuso… mas se os objetos dentro do vetor já implementarem a interface Comparable(acho que é esse o nome da interface eles já vão ter esse método implementado como por exemplo uma String daí é só vc fazer assim…

Arrays.sort(Aux);

pronto…

Não seria mais interessante substituir o método equals ?
ps: e se for o caso hasCode tbm!

Valeu pela atenção pessoal. Mas mesmo assim não consegui resolver ainda.

Bom, antes de mais nada: http://java.sun.com/docs/codeconv/ :slight_smile:

Depois, de uma olhada nas classes
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html e http://java.sun.com/j2se/1.4.2/docs/api/java/util/SortedSet.html que, com certeza, vao te ajudar. Voce pode, ao inves de usar um array, usar uma implementacao apropriada de SortedSet (TreeSet parece ser mais o caso). Exemplo de mao beijada:

[code]SortedSet set = new TreeSet(new Comparator() {
public int compare(Object o1, Object o2) {
// retorne um int dizendo se o1 eh maior que o2
}
});

set.add(“Fulano”);
set.add(“Beltrano”);
set.add(“Ciclano”);

for(Iterator i = set.iterator(); i.hasNext():wink: {
System.out.println(i.next());
}[/code]

problema resolvido grato a todos.