List<Produto>produtos=newArrayList<Produto>();Produtoproduto=newProduto();produto.setIdProduto(001);produto.setNomeProduto("Borracha");produto.setValorProduto(0.30);produtos.add(produto);produto.setIdProduto(002);produto.setNomeProduto("Lápis");produto.setValorProduto(0.40);produtos.add(produto);produto.setIdProduto(003);produto.setNomeProduto("Carderno");produto.setValorProduto(2.50);produtos.add(produto);System.out.println(produtos.size()+" é o total de elementos na lista.");for(inti=0;i<produtos.size();i++){//System.out.println(produtos.get(1));//dá IndexOutOfBoundsExceptionSystem.out.println();}}
importjava.util.ArrayList;importjava.util.List;publicclassmainProduto{publicstaticvoidmain(String[]args){List<Produto>produtos=newArrayList<Produto>();Produtoproduto=newProduto();produto.setIdProduto(001);produto.setNomeProduto("Borracha");produto.setValorProduto(0.30);produtos.add(produto);produto.setIdProduto(002);produto.setNomeProduto("Lápis");produto.setValorProduto(0.40);produtos.add(produto);produto.setIdProduto(003);produto.setNomeProduto("Carderno");produto.setValorProduto(2.50);produtos.add(produto);System.out.println(produtos.size()+" é o total de elementos na lista.");for(Produtop:produtos){System.out.println(p.getIdProduto()+p.getNomeProduto()+p.getValorProduto());}}}
dá uma olhada nesse exemplo que você vai sacar o que que rolou
L
Lucas_Emanuel
andredecotia:
pq não imprime tds os elementos da lista?
List<Produto>produtos=newArrayList<Produto>();Produtoproduto=newProduto();produto.setIdProduto(001);produto.setNomeProduto("Borracha");produto.setValorProduto(0.30);produtos.add(produto);produto.setIdProduto(002);produto.setNomeProduto("Lápis");produto.setValorProduto(0.40);produtos.add(produto);produto.setIdProduto(003);produto.setNomeProduto("Carderno");produto.setValorProduto(2.50);produtos.add(produto);System.out.println(produtos.size()+" é o total de elementos na lista.");for(inti=0;i<produtos.size();i++){//System.out.println(produtos.get(1));//dá IndexOutOfBoundsExceptionSystem.out.println();}}
Você só inseriu um Objeto produto, sempre o mesmo, criado na linha acima. Voce só foi "setando" valores diferentes, mas o objeto que voce inseriu é o mesmo. Por isso, quando voce tenta acessar pelo get(1), diz que ultrapassou os índices do ArrayList, já que como voce inseriu um único objeto, só existe o índice 0.
discorpio
Boa noite Andredecotia.
Tente isso:
List<Produto>produtos=newArrayList<Produto>();Produtoproduto=newProduto();produto.setIdProduto(001);produto.setNomeProduto("Borracha");produto.setValorProduto(0.30);produtos.add(produto);produto=newProduto();produto.setIdProduto(002);produto.setNomeProduto("Lápis");produto.setValorProduto(0.40);produtos.add(produto);produto=newProduto();produto.setIdProduto(003);produto.setNomeProduto("Carderno");produto.setValorProduto(2.50);produtos.add(produto);System.out.println(produtos.size()+" é o total de elementos na lista.");for(inti=0;i<produtos.size();i++){System.out.println(produtos.get(i).getIdProduto());System.out.println(produtos.get(i).getNomeProduto());System.out.println(produtos.get(i).getValorProduto());System.out.println();}
Quando voce selecione "produtos.get(1)", voce só selecione o Objeto "Produto" inteiro que está armazenado no ArrayList, porém nunca os valores dos seus métodos.
Outra coisa, sempre que voce inserir um novo Objeto Produto no ArrayList, voce tem que instanciar um novo Produto, mesmo que seja na mesma instância, ai voce limpa a instancia anterior e cria uma nova.
só tá imprimindo sempre a mesma coisa várias vezes… pq será?
discorpio
Boa noite a todos.
Voce observou o que nós dissemos quanto a instanciar um novo produto a cada inserção de dados:
Produtoproduto=newProduto();produto.setIdProduto(001);produto.setNomeProduto("Borracha");produto.setValorProduto(0.30);produtos.add(produto);// Crie uma nova instância de produtoproduto=newProduto();produto.setIdProduto(002);produto.setNomeProduto("Lápis");produto.setValorProduto(0.40);produtos.add(produto);// Crie uma nova instância de produto produto=newProduto();produto.setIdProduto(003);produto.setNomeProduto("Carderno");produto.setValorProduto(2.50);produtos.add(produto);
Está imprimindo sempre o último registro, porque voce só está armazenando uma única instância de Produto, e está atualizando o mesmo objeto.