Arraylist ordenado por nome (Resolvido!)

3 respostas
R

Pessoal sou novato em java, criei no netbeans um projeto de cadastro que adiciona, salva, exclui e pesquisa. O problema é que eu preciso que o resultado da pesquisa fique sempre em ordem alfabética, eu vi várias formas aqui no fórum mas na hora de implementar eu não consigo. Segue o código:

na classe dao está assim:

public List getLista(String nome) throws SQLException {

String sql = select * from CADCLIENTE where EMPRESA like?;

PreparedStatement stmt = this.conexao.prepareStatement(sql);

stmt.setString(1, nome);

ResultSet rs = stmt.executeQuery();
List<logicoclientes> minhaLista = new ArrayList<logicoclientes>();

    while (rs.next()) {
        logicoclientes c1 = new logicoclientes();
        c1.setIdForn(Long.valueOf(rs.getString("CODCLIENTE")));
        c1.setEmpresaForn(rs.getString("EMPRESA"));
        c1.setContatoForn(rs.getString("CONTATO"));
        c1.setTelefoneForn(rs.getString("TELEFONE"));
        c1.setCelularForn(rs.getString("CELULAR"));
        c1.setEmailForn(rs.getString("EMAIL"));
        c1.setSiteForn(rs.getString("SITE"));
        c1.setCidadeForn(rs.getString("CIDADE"));
        c1.setUf(rs.getString("UF"));
        c1.setDataForn(rs.getString("DATA"));
        c1.setObsForn(rs.getString("OBS"));
        minhaLista.add(c1);
    

    
}

    rs.close();
    stmt.close();
 
    System.out.println("Desconectado do banco");
   
    return minhaLista;


}

e na classe que tem do Jframe esta assim:

// botão pesquisar

private void jTPesquisarKeyReleased(java.awt.event.KeyEvent evt) {

limparTudo();
try {
        listarContatos();
        
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Ploblemas no campo de pesquisa");
    }
    
   
}
public void listarContatos()throws SQLException{

daoclientes dao = new daoclientes();

contatos = dao.getLista(jTPesquisar.getText()+"%");

mostraPesquisa(contatos);

}
private void mostraPesquisa(List<logicoclientes> contatos) {
while(tmContato.getRowCount()>0){
    
tmContato.removeRow(0);
}
    
    if (contatos.size()==0){

        JOptionPane.showMessageDialog(null, "Nenhum contato cadastrado");

    }else{
        String [] linha = new String[]{null, null, null, null,null};
        for (int i = 0; i<contatos.size();i++){
tmContato.addRow(linha);

tmContato.setValueAt(contatos.get(i).getIdForn(),i,0);

tmContato.setValueAt(contatos.get(i).getEmpresaForn(),i,1);

tmContato.setValueAt(contatos.get(i).getContatoForn(),i,2);

tmContato.setValueAt(contatos.get(i).getCidadeForn(),i,3);

tmContato.setValueAt(contatos.get(i).getObsForn(),i,4);
}
    }
}

3 Respostas

A

cara,

so vc usar order by na sua consulta.

t+

D

ou vc pode usar se voce quiser tb o Arrays.sort(seuArray)

lembrando que é necessário que os objetos do seu array implementem a interface java.lang.Comparable.

o metodo acima é bem mais facil, mais este seria uma outra forma de se fazer…

abrç!!!

R

consegui…

foi só colocar o order by na consulta.

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 3
Participantes 3