Fórum inserir elementos numa lista #569380

31/01/2012

0

ola pessoa to com um problema pois to precisando inserir varios produtos com suas caracteristicas numa lista so que nao to conseguindo inserir corretamente alguem pode me ajudar ai
public class compras {
	private String produto;
	private int quantidade;
	private float quilo;
	private float valor;
	
	public compras() {
		
		
	}
	
	

	public String getProduto() {
		return produto;
		
	}

	public void setProduto(String produto) {
		this.produto =produto;
	}

	public int getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}

	public float getQuilo() {
		return quilo;
	}

	public void setQuilo(float quilo) {
		this.quilo = quilo;
	}

	public float getValor() {
		return valor;
	}

	public void setValor(float valor) {
		this.valor = valor;
	}
	
	
}
aqui esta a classe onde ocorrerar a inserçao
public static void comprar(){
		
		String resp="";
		
		List<compras>nova=new ArrayList<compras>();
		
		compras agora= new compras();
		do{
		agora.setProduto(JOptionPane.showInputDialog("Nome do produto: "));  
		agora.setQuantidade(Integer.parseInt(JOptionPane.showInputDialog("quantidade: ")));  
		agora.setQuilo(Float.parseFloat(JOptionPane.showInputDialog("o quilo: ")));  
		agora.setValor(Float.parseFloat(JOptionPane.showInputDialog("o valor: ")));  

		
		nova.add(new compras());
		
	
		
		resp=JOptionPane.showInputDialog("deseja continuar?");
		
		
		}while(!(resp).equalsIgnoreCase("n"));
		
		
		
		for(int i=0;i<nova.size();i++){
		JOptionPane.showMessageDialog(null,"O produto é : "+agora.getProduto()+"\n a quantidade é :"+agora.getQuantidade()+
				"\n tem : "+agora.getQuilo()+"kg \n o valor é : "+agora.getValor());
		
		
		
	}
Ronaldo Santos

Ronaldo Santos

Responder

Posts

01/02/2012

Ricardo Staroski

Editei o seu código. Mas sugiro que estude programação orientada a objetos. Outra dica é que voce siga a convenção de escrita de código proposta pela SUN/Oracle. Outra questão importante, é usar nomes adequados para classes, métodos e variaveis. Por exemplo, voce tem uma classe compras, mas a palavra compras sugere uma coleção de mercadorias/produtos. Eu renomearia essa classe para Mercadoria. Voce também tem uma lista chamada de nova, porque não chama essa lista de compras, que é o que ela realmente representa?
public static void comprar(){
		
		String resp="";
		
		List<compras>nova=new ArrayList<compras>();
		
		do{
		compras agora= new compras();
		agora.setProduto(JOptionPane.showInputDialog("Nome do produto: "));  
		agora.setQuantidade(Integer.parseInt(JOptionPane.showInputDialog("quantidade: ")));  
		agora.setQuilo(Float.parseFloat(JOptionPane.showInputDialog("o quilo: ")));  
		agora.setValor(Float.parseFloat(JOptionPane.showInputDialog("o valor: ")));  

		
		nova.add(agora);
		
	
		
		resp=JOptionPane.showInputDialog("deseja continuar?");
		
		
		}while(!(resp).equalsIgnoreCase("n"));
		
		
		
		for(compras compra : nova){
		JOptionPane.showMessageDialog(null,"O produto é : "+compra.getProduto()+"\n a quantidade é :"+compra.getQuantidade()+
				"\n tem : "+compra.getQuilo()+"kg \n o valor é : "+compra.getValor());
		
		
		
	}
Responder

Gostei + 0

02/02/2012

Lucas Iorio

Vish não tinha visto, apaguei meu post anterior Coloque a primeira letra maiúscula para a classe
package com.byiorio;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

public class Shop {
	public Shop() {

	}

	public static void main(String[] args) {
		Shop comprar = new Shop();
		comprar.comprar();

	}

	public void comprar() {

		String resp = "";

		List<Produto> listaProdutos = new ArrayList<Produto>();

		Produto produtoCorrente = null;
		do {
			//começa um novo
			produtoCorrente = new Produto();
			//joga os valores
			produtoCorrente.setProduto(JOptionPane.showInputDialog("Nome do produto: "));
			produtoCorrente.setQuantidade(Integer.parseInt(JOptionPane.showInputDialog("quantidade: ")));
			produtoCorrente.setQuilo(Float.parseFloat(JOptionPane.showInputDialog("o quilo: ")));
			produtoCorrente.setValor(Float.parseFloat(JOptionPane.showInputDialog("o valor: ")));

			/// Mudar isso
			//listaProdutos.add(new Produto());
			//adiciona na lista
			listaProdutos.add(produtoCorrente);
			
			resp = JOptionPane.showInputDialog("deseja continuar?");

		} while (!(resp).equalsIgnoreCase("n"));

		for (int i = 0; i < listaProdutos.size(); i++) {
			
			//Mudar isso aqui
			produtoCorrente =listaProdutos.get(i);
			
			
			JOptionPane.showMessageDialog(null,
					"O produto é : " + produtoCorrente.getProduto()
							+ "\n a quantidade é :" + produtoCorrente.getQuantidade()
							+ "\n tem : " + produtoCorrente.getQuilo()
							+ "kg \n o valor é : " + produtoCorrente.getValor());

		}
	}

}

class Produto {
	private String produto;
	private int quantidade;
	private float quilo;
	private float valor;

	public String getProduto() {
		return produto;

	}

	public void setProduto(String produto) {
		this.produto = produto;
	}

	public int getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}

	public float getQuilo() {
		return quilo;
	}

	public void setQuilo(float quilo) {
		this.quilo = quilo;
	}

	public float getValor() {
		return valor;
	}

	public void setValor(float valor) {
		this.valor = valor;
	}

}
Responder

Gostei + 0

02/02/2012

Lucas Iorio

valeu pela ajuda brigadao, mas lucas vc nao teria repetido a mesma solucao a unica diferença que percebo é que vc faz um o for simples ja a do camarada acima ele usa o foreach que poderia ter sido tambem o Iterator?
Responder

Gostei + 0

02/02/2012

Lucas Iorio

Prefiro e sempre uso foreach, igual ele mostrou =] Tentei manter a mesma lógica do FOR para você entender melhor. Normalmente a galera não entende o foreach , não sei pq !!
Responder

Gostei + 0

02/02/2012

Lucas Iorio

valeu obrigadao, talvez a galera nao entenda por falta de costume(iniciantes inclusive eu) e por ser diferente do for tradicional ensinado pelos professores e tem livros que nem citam mas ja estou mais familiarizado com ele a cada dia. a proposito com gostaria de fechar o topico eu coloco simlpesmente fechado ou respondido no titulo da mensagem?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar