Como criar um ArrayList e add valores dos atributos da classe?

Pessoal, eu tenho uma classe que tem três atributos(nome, media, email)

eu quero add esses atributos em umarray list. vejam se eu fiz certo.

//Instancia da Classe.
  Classe_Cadastro cc = new Classe_Cadastro(nome, media, email); 
   List<Classe_Cadastro> st = new ArrayList(); //Cria o array do tipo //Classe_Cadastro.
                      st.add(cc);

                                           for (int i = 0; i < st.size(); i++) {//Exibe o array
                            out.println(st.get(i));

Cara, oq tu fez, foi jogar o objeto “cc” dentro da lista.
Dps, no seu for, vc percorre a lista, e pega o primeiro e unico item, e da um print na tela do objeto.

E sim, vc esta fazendo oq queria fazer.

:slight_smile:

não testei aqui, mas ta com a cara boa…

Só atenção para o padrão de nomenclatura e troque Classe_Cadastro para ClasseCadastro e atenção para no java 6 o tipo da coleção vai na Referência e na instancia.

//Instancia da Classe.
  Classe_Cadastro cc = new Classe_Cadastro(nome, media, email); 
   List<Classe_Cadastro> st = new ArrayList<Classe_Cadastro>() // acerte isso; //Cria o array do tipo //Classe_Cadastro.
                      st.add(cc);

                                           for (int i = 0; i < st.size(); i++) {//Exibe o array
                            out.println(st.get(i));

=)

mas do jeito que fiz… provavelmente ele está jogando todos os atributos da classe dentro do ArrayList ne isso?

cara ele ta jogando um objeto do tipo Classe_Cadastro dentro do arraylist para pegar o nome vc vai ter que pegar o

out.println(st.get(i)// isso retorna um objeto);

para conseguir pegar a propriedade faça isso…

out.println(st.get(i).nome);

Você ja testou esse codigo meu caro??

:lol:

Edit: era justamente isso que o companheiro de cima observou que eu ia falar…
xD

ainda não testei, mas so estou faltando terminar umas coisinhas aqui e jaja texto e coloco o resultado aki ^^

Ele não reconhece o nome no exemplo que ele deu em cima.

  out.println(st.get(i).nome);  

[quote=felipevs]Ele não reconhece o nome no exemplo que ele deu em cima.

  out.println(st.get(i).nome);  

Troque st.get(i).nome por st.get(i).getNome().
Entenda o seguinte, quando realiza o get(i) você tem em mãos o objeto contido na lista, nesse caso, a sua classe.

Diante disso, podes fazer qualquer manipulação, ou se preferir para ficar mais claro, algo do tipo:

 SuaClasse objeto = st.get(i);

Pronto, agora é só trabalhar com o objeto.

Abraços.

Desulpe, mas veja… o código é esse… mas tem ate um probleminha… quando eu clico no botão cadastrar ele ta para add no array … mas tbm ta pra instancia a classe e criar o array…e isso nao pode acontecer … então alguém tem alguma idéia como posso fazer isso ?

se possivel alguem complete a parte do código onde devo resgatar e exibir os valores do array =X

try{
                    //Iniciar o cadastro.
                    String iniciarCadastro = String.valueOf(request.getParameter("bCadastrar"));
                    if (iniciarCadastro.equalsIgnoreCase("Cadastrar")) {

                        //Tribuindo valores as variáveis (recebendo os valores do formulário).
                        String nome = String.valueOf(request.getParameter("nome"));
                        String email = String.valueOf(request.getParameter("email"));
                        double nota_1 = Double.parseDouble(request.getParameter("nota1"));
                        double nota_2 = Double.parseDouble(request.getParameter("nota2"));
                        double nota_3 = Double.parseDouble(request.getParameter("nota3"));
                        double media = (nota_1 + nota_2 + nota_3) / 3; // Calcula a média.

                        // Cria o ArrayList do tipo cadastro.
                        List<ClasseCadastro> arrayCad = new ArrayList();
                        ClasseCadastro clasCad = new ClasseCadastro(nome, media, email);//Instancia da classe
                        arrayCad.add(clasCad);
                     
                        

                         %> <center><font color="green"> Cadastrado com sucesso.. </font> </center> <%
                      
                         for(int i = 0;  i < 5; i++){
                             
                         out.println(arrayCad.get(i).getNome());

                    }


}
}
                    
                  }catch(Exception a){
                      
                             %> <center><font color="red"> Não foi possível efetuar o cadastro. </font> </center> <%
                      }



Todo esse tempo estavamos falando de um Servlet, é isso? :roll:
Pensando bem rápido:

private static List<ClasseCadastro> arrayCad;
//cria um bloco estatico
static {
   arrayCad = new ArrayList<ClasseCadastro>();   
}

Instancia a list no classloader da sua classe.
Como falamos de Servlet, talvez possa jogar essa lista no request e etc e evitar esse tipo de coisa.

=X

o meu for ta assim mas não funcionaa… pq será ?
qual o erro ?
não ta exibindo nada.

[code] for(int i = 0; i < arrayCad.size();i++){

                        out.println(arrayCad.get(i).getNome());[/code]

[quote=felipevs]=X

o meu for ta assim mas não funcionaa… pq será ?
qual o erro ?
não ta exibindo nada.

[code] for(int i = 0; i < arrayCad.size();i++){

                        out.println(arrayCad.get(i).getNome());[/code][/quote]

E esse objeto, está preenchido?!
Com o que?:slight_smile:

veja como ta o código:
a instancia da classe e array estão fora do if, será que eh isso que ela nao ta criando ?

[code] <%
String nome = “”;
String email = “”;
double nota_1 = 0;
double nota_2 = 0;
double nota_3 = 0;
double media = 0;

                //As variáveis recebe o valor do form e calcula a média.
                String iniciarCadastro = String.valueOf(request.getParameter("bCadastrar"));
                if (iniciarCadastro.equalsIgnoreCase("Cadastrar")) {


                    //Tribuindo valores as variáveis (recebendo os valores do formulário).
                    nome = String.valueOf(request.getParameter("nome"));
                    email = String.valueOf(request.getParameter("email"));
                    nota_1 = Double.parseDouble(request.getParameter("nota1"));
                    nota_2 = Double.parseDouble(request.getParameter("nota2"));
                    nota_3 = Double.parseDouble(request.getParameter("nota3"));
                    media = (nota_1 + nota_2 + nota_3) / 3; // Calcula a média.
                }


                List<ClasseCadastro> arrayCad = new ArrayList();

                ClasseCadastro clasCad = new ClasseCadastro(nome, media, email);//Instancia da classe




                try {

                    if (iniciarCadastro.equalsIgnoreCase("Cadastrar")) {

                        //Add
                        arrayCad.add(clasCad);
    %> <center><font color="green"> Cadastrado com sucesso.. </font> </center> <%


                            }

                        } catch (Exception a) {

    %> <center><font color="red"> Não foi possível efetuar o cadastro. </font> </center> <%                    }


                String exibirCadastro = String.valueOf(request.getParameter("bListagem"));
                if (exibirCadastro.equalsIgnoreCase("Listar")) {

                    for (int i = 0; i < arrayCad.size(); i++) {

                        out.println(arrayCad.get(i).getNome());

                    }


    %>

[/code]