Select gravando em ArrayList

Olá pessoal como faço para utilizar um mesmo array em dois select, exemplo em um select eu vou preencher uma beans e uma das variaveis dessas beans ficara vazia, para que o proximo select possa alimentar essa variavel, so que nao estou conseguindo pegar o mesmo array que utilizei, o que posso fazer vou postar o código.

[code]public ArrayList carregarInfo(String empresa,int cod_carregamento) {
lista = new ArrayList();
try {

        conex.conectar();
        Statement query = conex.conn.createStatement();
        ResultSet resultado = query.executeQuery("SELECT DISTINCT  a.cod_empresa,"
                + "a.num_carregamento,a.num_pedido,e.nom_cliente,"
                + "(trim(f.cod_uni_feder) ||'-'||trim(f.den_cidade)||'-'||trim(e.end_cliente))ender,e.den_bairro,e.cod_cliente,"
                + "f.den_cidade "
                + "FROM bc5_estrutura_vdp a , esp_montag_carreg b, item c , "
                + "pedidos d , clientes e,cidades f "
                + "WHERE a.cod_empresa='"+empresa+"' "
                + "AND a.cod_empresa=b.cod_empresa "
                + "AND a.cod_empresa = c.cod_empresa "
                + "AND a.cod_empresa = d.cod_empresa "
                + "AND a.cod_item_compon = c.cod_item "
                + "AND c.ies_tip_item = 'F' "
                + "AND a.num_carregamento = '"+cod_carregamento+"' "
                + "AND a.num_carregamento = b.num_carregamento "
                + "AND a.num_pedido = b.num_pedido "
                + "AND a.num_pedido = d.num_pedido "
                + "AND d.cod_cliente = e.cod_cliente "
                + "AND e.cod_cidade = f.cod_cidade "
                + "AND a.num_sequencia = b.num_sequencia "
                + "ORDER BY e.cod_cliente,a.num_pedido;");
                
        while (resultado.next()) {
            rot = new Rota();
            rot.setCod_empresa(resultado.getString(1));
            rot.setNum_carregamento(resultado.getInt(2));
            rot.setNum_pedido(resultado.getFloat(3));
            rot.setNom_cliente(resultado.getString(4));
            rot.setEndereco(resultado.getString(5));
            lista.add(rot);
        }
        conex.fechar_resultset(resultado);
        query.close();
        return lista;
    } catch(SQLException e) {
        System.out.println(e);
        return null;
    }
}[/code]

Este é o primeiro select, que retorna em quase todas as variaveis da minha beans.

[code]public ArrayList carregarPesoPedido(String empresa,int cod_carregamento) {
//ArrayList lista1 = new ArrayList();
//lista1 = lista;
try {

        conex.conectar();
        Statement query = conex.conn.createStatement();
        ResultSet resultado = query.executeQuery("SELECT e2.num_pedido,f2.cod_cliente,"
                + "trim(f2.nom_cliente)nom_cliente,CASE WHEN f2.end_cliente is NULL THEN ''"
                + "WHEN f2.end_cliente IS NOT NULL THEN trim(f2.end_cliente) END end_cliente,"
                + "CASE WHEN f2.den_bairro IS NULL THEN ''"
                + "WHEN f2.den_bairro IS NOT NULL THEN trim(f2.den_bairro)"
                + "END bairro,trim(h2.den_cidade)den_cidade,trim(h2.cod_uni_feder)cod_uni_feder,"
                + "sum(e2.qtd_solicitada*(b2.pes_unit+round(1/c2.qtd_padr_embal,0)))peso "
                + "FROM item b2 , item_embalagem c2,esp_montag_carreg d2 , "
                + "bc5_estrutura_vdp e2 , clientes f2,pedidos g2,cidades h2 "
                + "WHERE b2.cod_empresa='"+empresa+"' "
                + "AND b2.cod_empresa=d2.cod_empresa "
                + "AND b2.cod_empresa = e2.cod_empresa "
                + "AND b2.cod_empresa = c2.cod_empresa "
                + "AND b2.cod_empresa = g2.cod_empresa "
                + "AND b2.cod_item = e2.cod_item_compon "
                + "AND b2.cod_item = c2.cod_item "
                + "AND d2.num_carregamento = '"+cod_carregamento+"' "
                + "AND d2.num_carregamento = e2.num_carregamento "
                + "AND d2.num_pedido = e2.num_pedido "
                + "AND d2.num_pedido = g2.num_pedido "
                + "AND f2.cod_cliente = g2.cod_cliente "
                + "AND f2.cod_cidade = h2.cod_cidade "
                + "AND d2.num_sequencia = e2.num_sequencia "
                + "GROUP BY e2.num_pedido,f2.nom_cliente,f2.cod_cliente,f2.end_cliente,"
                + "h2.den_cidade,f2.den_bairro,h2.cod_uni_feder "
                + "ORDER BY f2.cod_cliente,e2.num_pedido;");
                
        while (resultado.next()) {
            
           //Rota r = getRot();
            

            rot.setPeso(resultado.getFloat(8));
            lista.add(rot);
        }
        conex.fechar_resultset(resultado);
        query.close();
        return lista;
    } catch(SQLException e) {
        System.out.println(e);
        return null;
    }
 }[/code]

E esse e o meu segundo que não consigo utilizar o mesmo array, alguem pode me dar uma luz?

Sua dúvida não é relacionada a SQL nem nada do tipo, e sim a escopos de variável.

Se você tem uma variável com escopo local, ela só existirá dentro do método, a não ser que ela seja retornada ao final dele. Ex:public void metodo(){ String texto = "Minha variável local"; // Essa variável só existirá dentro do método em que foi criada, ao terminar a execução do método, você não tem mais a referência dela }Agora se você retornar ela, você guarda a referência.[code]public void metodo(){
String texto = retornarString();
}

public String retornarString(){
String texto = “Minha variável local”;
return texto;
}[/code]Portanto se você quer aproveitar uma variável em diversos métodos, você tem 2 opções nesse caso. Ou guarda a referência e envia como argumento para o próximo método:[code]public void metodo1(){
String texto = retornarString();
metodo2(texto); //Aqui eu passo a String que recebi para o próximo método
}

public void metodo2(String stringComoArgumento){
System.out.println(stringComoArgumento)
}

public String retornarString(){
String texto = “Minha variável local”;
return texto;
}[/code] Ou defino a variável com um escopo maior. Escopo de classe, por exemplo.[code]public class MinhaClasse{

private String minhaString;

public void metodo1(){
    minhaString = "Minha String com escopo de classe";
    // Como a variável foi definida fora do método, o valor que for atribuído aqui permanecerá lá, 
    // e estará acessível para outros métodos da classe.
}

public void metodo2(){
    System.out.println(minhaString);
    // Aqui eu posso ler o valor que foi definido pelo metodo1
}

}[/code]Ficou mais claro?

eu acho estranho essa lógica de usar 2 selects para carregar a mesma lista, de uma estruturada melhor na sua regra de negócios.

agora com relação a usar a mesma lista, funciona mais ou menos assim:

[code]public class SuaClasse{

private ArrayList lista;

//setei como void
public void carregarInfo(String empresa,int cod_carregamento){

//sua implem
//lista.add

}

//setei como void
public void carregarPesoPedido(String empresa,int cod_carregamento){

//sua implem
//lista.add

}

public ArrayList getListaRota(){

return lista;

}

}[/code]

E que tipo, os select que eu tenho que fazer são diferentes, um eu acho o pedido e outro o peso daquele pedido, eu nao estou conseguindo fazer o que relacionar , por exemplo o primeiro select me tras uma lista de 20 pedidos, que tera 20 pesos, dai quando eu faço o segundo select ele sobrepõe todas as outras informações na beans, em vez de ir direito exemplo pedido A peso A, ele nao faz isso que eu quero, ele deixa os outros campos tudo null, e o peso ele coloca certo, ai quando eu abro a minha tabela ela so tem os pesos sem as outras informações do primeiro select