Contagem de registros

Turma, vejam este método:

public Object[][] consultaLancamentos(int matricula){
        ResultSet rst = conexaoOracle.consultaLancamentos(matricula);
        
        int numColunas = rotulos.length;
        int numLinhas = 0;
        int contaLinhas = 0;
        try{
            while(rst.next()){
                numLinhas++;
            }
        } catch(SQLException ex){
            ex.printStackTrace();
        }
        
        Object dados[][]= new Object[numLinhas][numColunas];
        
        try{
            rst.beforeFirst();
            while(rst.next()){
                for(int c=0; c<numColunas; c++){
                    dados[contaLinhas][c] = rst.getString(c+1);
                }
                contaLinhas++;
            }
            rst.close();
            } catch (SQLException ex){
                ex.printStackTrace();
              }
        return dados;
    }

Este Object dados retornado eu uso pra preencher um JTable. Está funcionando beleza, só achei que ficou um chuncho meio feio a parada de correr os registros uma vez só pra saber quantas linhas vieram no resultset, neste trecho:

        try{
            while(rst.next()){
                numLinhas++;
            }
        } catch(SQLException ex){
            ex.printStackTrace();
        }

… e depois posicionar antes do primeiro registro e lê-los novamente. Procurei algum método de ResultSet que me desse a quantidade de linhas retornadas, mas não achei. A sábia opinião dos bambas será bem vinda!!

Use ArrayList pra fazer isso!

Esse negocio de percorrer o ResultSet duas vezes está uma gambiarra feia mesmo, mas pior que isso é usar um array pra armazenar os dados, use uma coleção como Ratinho falou!

Valeu, senhores!![/i]