Olá, preciso ordenar uma array de strings multidimensional de acordo com o desempenho de cada aluno de uma determinada classe de aula.
public String [][] getAlunosClasse(Classe classe)
{
try
{
List desempenhoClasse = new ArrayList();
Session ses = HibernateSessao.getSessao();
Query query = ses.createQuery( "from sistema.Aluno as alu "+
" where alu.classes.idClasse = :idClasse "
);
query.setParameter("idClasse", new Integer(classe.getIdClasse()));
List alunos = query.list();
String desempenho[][] = new String[alunos.size()][2];
Iterator it = alunos.iterator();
double total=0;
int i=0, totalAlunos=0;
while(it.hasNext())
{
Aluno aluno = (Aluno) it.next();
desempenho[totalAlunos][0] = aluno.getNome();
desempenhoClasse.add(aluno.getNome());
Iterator it2 = aluno.getExerciciosFeitos().iterator();
while(it2.hasNext())
{
ExercicioFeito ef = (ExercicioFeito)it2.next() ;
Iterator it3 = ef.getClasseFeita().iterator();
while(it3.hasNext())
{
ClasseFeita cf = (ClasseFeita) it3.next();
total = total + cf.getAproveitamento();
i++;
}
DecimalFormat dc = new DecimalFormat("0.##");
desempenho[totalAlunos][1] = dc.format(total/i);
}
totalAlunos++;
}
return desempenho;
}
catch (Exception e)
{
e.printStackTrace();
HibernateSessao.aborta();
throw new HibernateException("Erro na consulta dos exercicios do aluno");
}
}
}
A idéia é inserir o nome dos alunos de acordo com o desempenho, do maior para o menor.
Se alguém puder ajudar.
OBS: estou usando o hibernate, mas devido a metodologia utilizada para calcular o desempenho, não é possível ordenar através do framework
Obrigado