Como criar um ArrayList e add valores dos atributos da classe?
13 respostas
F
felipevs
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_Cadastrocc=newClasse_Cadastro(nome,media,email);List<Classe_Cadastro>st=newArrayList();//Cria o array do tipo //Classe_Cadastro.st.add(cc);for(inti=0;i<st.size();i++){//Exibe o arrayout.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.
V
vitorfarias
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_Cadastrocc=newClasse_Cadastro(nome,media,email);List<Classe_Cadastro>st=newArrayList<Classe_Cadastro>()// acerte isso; //Cria o array do tipo //Classe_Cadastro.st.add(cc);for(inti=0;i<st.size();i++){//Exibe o arrayout.println(st.get(i));
F
felipevs
=)
mas do jeito que fiz… provavelmente ele está jogando todos os atributos da classe dentro do ArrayList ne isso?
V
vitorfarias
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);
L
lucasgcp
Você ja testou esse codigo meu caro??
:lol:
Edit: era justamente isso que o companheiro de cima observou que eu ia falar…
xD
F
felipevs
ainda não testei, mas so estou faltando terminar umas coisinhas aqui e jaja texto e coloco o resultado aki ^^
F
felipevs
Ele não reconhece o nome no exemplo que ele deu em cima.
out.println(st.get(i).nome);
nel
[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:
SuaClasseobjeto=st.get(i);
Pronto, agora é só trabalhar com o objeto.
Abraços.
F
felipevs
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.StringiniciarCadastro=String.valueOf(request.getParameter("bCadastrar"));if(iniciarCadastro.equalsIgnoreCase("Cadastrar")){//Tribuindo valores as variáveis (recebendo os valores do formulário).Stringnome=String.valueOf(request.getParameter("nome"));Stringemail=String.valueOf(request.getParameter("email"));doublenota_1=Double.parseDouble(request.getParameter("nota1"));doublenota_2=Double.parseDouble(request.getParameter("nota2"));doublenota_3=Double.parseDouble(request.getParameter("nota3"));doublemedia=(nota_1+nota_2+nota_3)/3;// Calcula a média.// Cria o ArrayList do tipo cadastro.List<ClasseCadastro>arrayCad=newArrayList();ClasseCadastroclasCad=newClasseCadastro(nome,media,email);//Instancia da classearrayCad.add(clasCad);%><center><fontcolor="green">Cadastradocomsucesso..</font></center><%for(inti=0;i<5;i++){out.println(arrayCad.get(i).getNome());}}}}catch(Exceptiona){%><center><fontcolor="red">Nãofoipossívelefetuarocadastro.</font></center><%}
nel
Todo esse tempo estavamos falando de um Servlet, é isso? :roll:
Pensando bem rápido:
privatestaticList<ClasseCadastro>arrayCad;//cria um bloco estaticostatic{arrayCad=newArrayList<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.
F
felipevs
=X
o meu for ta assim mas não funcionaa... pq será ?
qual o erro ?
não ta exibindo nada.
for(inti=0; i < arrayCad.size();i++){out.println(arrayCad.get(i).getNome());
nel
felipevs:
=X
o meu for ta assim mas não funcionaa... pq será ?
qual o erro ?
não ta exibindo nada.
for(inti=0; i < arrayCad.size();i++){out.println(arrayCad.get(i).getNome());
E esse objeto, está preenchido?!
Com o que?:)
F
felipevs
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 ?
<%Stringnome="";Stringemail="";doublenota_1=0;doublenota_2=0;doublenota_3=0;doublemedia=0;//As variáveis recebe o valor do form e calcula a média.StringiniciarCadastro=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=newArrayList();ClasseCadastroclasCad=newClasseCadastro(nome,media,email);//Instancia da classetry{if(iniciarCadastro.equalsIgnoreCase("Cadastrar")){//AddarrayCad.add(clasCad);%><center><fontcolor="green">Cadastradocomsucesso..</font></center><%}}catch(Exceptiona){%><center><fontcolor="red">Nãofoipossívelefetuarocadastro.</font></center><%}StringexibirCadastro=String.valueOf(request.getParameter("bListagem"));if(exibirCadastro.equalsIgnoreCase("Listar")){for(inti=0;i<arrayCad.size();i++){out.println(arrayCad.get(i).getNome());}%>