Preciso ordenar uma lista de faltas por data do funcionário no meu form. Como? [segue código]

Senhores,

Preciso ordenar uma lista que obtém todas as faltas de um determinado funcionário. Estou utilizando um hashset, entretanto não estou conseguindo ordenar. Tem com vocês me daram um “bizu”.
Obs. Estou tentando ordenar as faltas por dia/mes em ordem descrescente.

....
....
<%
   Funcionario  funcionario  = en.funcionarioHome.findByPK(funcionarioKey);
   HashSet listaFalta = new HashSet();
   listaFalta = null; 
   int contFalta=0;              
%> 
<body bgcolor="#FFFFFF">   
<form ACTION="ConsultarFaltaFuncionario" METHOD="GET" name="ConsultarFaltaFuncionarioForm"> 

   <TABLE width="100%" cellpadding="2" cellspacing="0" border="1" bordercolor="#83A2CF">
     <TR> 
      &lt;TD width="30%" bgcolor="#B6C8E7"&gt;<b><font >
         Membro :</font></b>&lt;/TD&gt;
     &lt;TD width="70%"&gt; 
      &lt;%=funcionario.getNome()%&gt;
      &lt;/TD&gt;
    &lt;/TR&gt;
 &lt;%listaFalta = (HashSet) funcionario.getListaFalta();
     Iterator it = listaFalta.iterator();
    FaltaFuncionario faltaFuncionario = null;
    while (it.hasNext()){
          faltaFuncionario = (FaltaFuncionario) it.next();
          if (faltaFuncionario.getSituacao().equals("F")){
            contFalta++;
          %&gt;
&lt;TR&gt;
&lt;TD colspan="4"&gt;
<font >
Data:&nbsp;&lt;%=Util.DataToString(faltaFuncionario.getDataFalta())%&gt;</font>
&lt;/TD&gt;
&lt;/TR&gt;

&lt;%}%&gt;
&lt;%}%&gt;
&lt;TR&gt;
&lt;TD colspan="4"&gt;<font face="arial" size="1">Total de Faltas:&nbsp;&lt;%=contFalta%&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/table&gt;
<br>
&lt;center&gt;
&lt;TABLE&gt;
  &lt;TR&gt;
    &lt;TD&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;TR bgcolor="#B9D1DF"&gt; 
     &lt;TD colspan="10"&gt;<b> 
       &lt;input type="button"  value="Fechar"  onClick="window.close();" style="font-size:11px"&gt;
     </b>&lt;/TD&gt;
     &lt;TD colspan="10"&gt;<b> 
       &lt;input type="button"  value="Imprimir"  onClick="window.print();" style="font-size:11px"&gt;
     </b>&lt;/TD&gt;
  &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;/CENTER&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

Desde já agradeço.

Oi feaupi, desculpe, eu nem li direito o seu código, mas quando penso em ordenar, por maior ou menor, ou mesmo por data, acredito que você poderia estar fazendo isso diretamente no SQL, não é mais fácil?

Você pode usar um TreeSet() com um Comparator.

Você criaria uma classe que implementa a interface Comparator. Nesse classe você vai definir a ordem dos elementos.

Daí ou invés de instanciar um HashSet você instancia um TreeSet com essa classe como parâmetro. Quando der um add no TreeSet os elementos serão inseridos de acordo com o critério definido classe que implementa Comparator.

Mas acho que a melhor solução é pegar ordenado da base mesmo.

Cara, quanto à pergunta faço minhas as palavras de meus companheiros: ordene diretamente no banco.

Um pouco fora da sua questão: vc não acha que está misturando “um pouco” as responsabilidades das camadas? Que tal aplicar MVC?