Ae pessoal, eu tenho um vetor do tipo candidato com nome(String) e votos(int), posso ordenar o vetor pela quantidade de votos?
Vlew
Ae pessoal, eu tenho um vetor do tipo candidato com nome(String) e votos(int), posso ordenar o vetor pela quantidade de votos?
Vlew
claro, tu pode fazer um método bubble sort da vida, pegando o getVotos() de cada candidato… nao tem diferença nenhuma de qualquer outra ordenação, o criterio só vai ser o getVotos(), ao invéz do conteudo de cada posição do vetor…(como vc devia fazer nas primeiras aulas hehe)
É melhor usar um Comparator ou fazer Candidato ser Comparable e depois usar alguns metodos para comparação. Com Comparator fica algo assim:
[code]import java.util.*;
public CandidatoComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Candidato c1 = (Candidato)obj1;
Candidato c2 = (Candidato)obj2;
int result = -1;
if(c1.getvotos() > c2.getVotos()) {
result = 1;
} else if (c1.getvotos() == c2.getVotos()){
result = 0;
}
return result;
}
public boolean equals(Object other) {
return other == this || other instanceof CandidatoComparator;
}
}[/code]
E na hora de ordenar seu Vector:
Comparator comparator = new CandidatoComparator();
Collections.sort(vectorCandidator, comparator);
Claro, vc poderia melhorar o Comparator criando-o com algum paremetro que indicasse se a ordenação e ascendente ou descendente.
valeuz…