Migrar classe com array para arraylist

6 respostas
M

Salve Galera,

Alguem poderia me ajudar a migrar a classe abaixo para array arraylist ou linkedlist?

public class Revenda {

	private Produto produtos[];
	private static int numeroProdutos = 0;

	public Revenda(int quantidadeProdutos){
		produtos = new Produto [quantidadeProdutos];
	}//fim do construtor Revenda(int quantidadeProdutos)

	public void inserirProduto(Produto produto){
		int i=0;

		int tamanho = produtos.length;
		while (i<tamanho && produtos[i]!=null){
			i++;
		}//fim do while
		if (i == tamanho) {
			System.out.println("Vetor Cheio");
		}//fim do if
		else {
			produtos [i]=produto;
			numeroProdutos++;
		}//fim do else
	}//fim do metodo inserirProduto (Produto produto)

	public void excluirProduto (int codigoProduto){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.length;
		while (i<tamanho){
			Produto produto = produtos[i];
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					produtos[i] = null;
					numeroProdutos--;
					achouProduto = true;
					break;
				}//fim di if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			System.out.println("Produto não encontrado para excluir");
		}//fim do if
	}//fim do metodo excluirProduto(int codigoProduto)

	public void comprar(int codigoProduto, int quantidadeUnidades){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.length;
		while (i<tamanho){
			Produto produto = produtos[i];
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					int qtd_estoque = produto.getQtd_estoque();
					produto.setQtd_estoque(qtd_estoque+quantidadeUnidades);
					achouProduto = true;
					break;
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			System.out.println("Produto não encontrado para comprar");
		}//fim do if
	}//fim do metodo comprar(int codigoProduto, int quantidadeUnidades))

	public void vender(int codigoProduto, int quantidadeUnidades){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.length;
		while (i<tamanho){
			Produto produto = produtos[i];
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					if (quantidadeUnidades>produto.getQtd_estoque()){
						System.out.println("Quantidade de produto em estoque insuficiente");
						achouProduto = true;
						break;
					}//fim do if
					else
					{
						int qtd_estoque = produto.getQtd_estoque();
						produto.setQtd_estoque(qtd_estoque-quantidadeUnidades);
						achouProduto = true;
						break;
					}//fim do else
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			System.out.println("Produto não encontrado para vender");
		}//fim do if
	}//fim do metodo vender(int codigoProduto, int quantidadeUnidades)

	public void consultaPrecoVenda(int codigoProduto){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.length;
		while (i<tamanho){
			Produto produto = produtos[i];
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
						System.out.println("Valor de venda é "+produto.calculaPrecoVenda());
						achouProduto = true;
						break;
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			System.out.println("Produto não encontrado");
		}//fim do if
		
	} //fim do metodo consultaPrecoVenda(int codigoProduto)

	public void listaPrecos(){

		int i=0;
		int tamanho = produtos.length;
		while (i<tamanho){
			Produto produto = produtos[i];
			if (produto != null){
				System.out.println("Código = " + produto.getCodigo());
				System.out.println("Descrição = " + produto.getDescricao());
				System.out.println("Valor de Venda = " + produto.calculaPrecoVenda());
			}
			i++;
		}
	}//fim do metodo listaPrecos()

	public void inserirProduto(ProdutoComGerador produto1) {
		// TODO Auto-generated method stub
		
	}
}//fim da classe Revenda

6 Respostas

maquiavelbona

Vai ficar fazendo N tópicos mesmo?

R

primeiro você vai mudar seu array de Produto produtos[] para ArrayList produtos
e vai utilizar todos os métodos da propria classe, vai ficar bem mais facil

M

Caro amigo a duplicidade não foi intensional, queira me desculpar, mas acho que voce poderia ter um pouco mais de educação com as pessoas, afinal de contas qual a finalidade principal do forum ? não é esclarecimento de duvidas! se não quer responder não fala nada!

M

Amigo rjbcordeiro refiz a classe e ficou assim

package vale_ponto;
import javax.swing.JOptionPane;
import java.util.ArrayList;

public class Revenda {

	ArrayList<Produto> produtos; 

	private static int numeroProdutos;

	public void inserirProduto(Produto produto){
		int i=0;
		int tamanho = produtos.size();

		while (i<tamanho && produtos.get(i)!=null){
			i++;
		}//fim do while
		if (i == tamanho) {
			JOptionPane.showMessageDialog(null, "Não há espaço para inserir um novo produto", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if
		else {
			produtos.add(produto);
			numeroProdutos++;
			JOptionPane.showMessageDialog(null,"Produto inserido com sucesso", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do else
	}//fim do metodo inserirProduto (Produto produto)

	public void excluirProduto (int codigoProduto){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					produtos.add(null);
					numeroProdutos--;
					JOptionPane.showMessageDialog(null,"Produto excluído com sucesso", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
					achouProduto = true;
					break;
				}//fim di if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			JOptionPane.showMessageDialog(null,"Produto não encontrado para excluir", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if
	}//fim do metodo excluirProduto(int codigoProduto)

	public void comprar(int codigoProduto, int quantidadeUnidades){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					int qtd_estoque = produto.getQtd_estoque();
					produto.setQtd_estoque(qtd_estoque+quantidadeUnidades);
					JOptionPane.showMessageDialog(null,"Compra efetuada com sucesso", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
					achouProduto = true;
					break;
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			JOptionPane.showMessageDialog(null,"Produto não encontrado para comprar", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if
	}//fim do metodo comprar(int codigoProduto, int quantidadeUnidades))

	public void vender(int codigoProduto, int quantidadeUnidades){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					if (quantidadeUnidades>produto.getQtd_estoque()){
						JOptionPane.showMessageDialog(null,"Quantidade de produto em estoque insuficiente", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
						achouProduto = true;
						break;
					}//fim do if
					else
					{
						int qtd_estoque = produto.getQtd_estoque();
						produto.setQtd_estoque(qtd_estoque-quantidadeUnidades);
						JOptionPane.showMessageDialog(null,"Venda efetuada com sucesso", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
						achouProduto = true;
						break;
					}//fim do else
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			JOptionPane.showMessageDialog(null,"Produto não encontrado para vender", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if
	}//fim do metodo vender(int codigoProduto, int quantidadeUnidades)

	public void consultaPrecoVenda(int codigoProduto){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					JOptionPane.showMessageDialog(null, "Valor de venda é "+produto.calculaPrecoVenda(), "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
					achouProduto = true;
					break;
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			JOptionPane.showMessageDialog(null,"Produto não encontrado", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if

	} //fim do metodo consultaPrecoVenda(int codigoProduto)

	public void listaPrecos(){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				JOptionPane.showMessageDialog(null, "Código = " + produto.getCodigo() + "\n" + "Descrição = " + produto.getDescricao() + "\n" + "Valor de Venda = " + produto.calculaPrecoVenda(), "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
				achouProduto = true;
			}
			i++;
		}
		if (achouProduto == false){
			JOptionPane.showMessageDialog(null, "Sem produtos para listar", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}
	}//fim do metodo listaPrecos()

	public void consultaEstoque(int codigoProduto){

		boolean achouProduto = false;
		int i=0;
		int tamanho = produtos.size();
		while (i<tamanho){
			Produto produto = (Produto) produtos.get(i);
			if (produto != null){
				if (codigoProduto == produto.getCodigo()) {
					JOptionPane.showMessageDialog(null, "A quantidade de produtos é "+produto.getQtd_estoque(), "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
					achouProduto = true;
					break;
				}//fim do if
			}//fim do if
			i++;
		}//fim do while
		if (achouProduto == false) {
			JOptionPane.showMessageDialog(null,"Produto não encontrado", "Prática Profissional LPOO", JOptionPane.PLAIN_MESSAGE);
		}//fim do if
	} //fim do metodo consultaEstoque(int codigoProduto)
}//fim da classe Revenda
maquiavelbona

Se o fórum é para esclarecer dúvidas ( o que eu discordo porque isso não é suporte técnico grátis ) mesmo isso não te dá o direito de postar 3 vezes a mesma coisa. Se foi intencional ou não, não sei. Só sei que tem 3 tópicos iguais em tempos razoavelmente diferentes (um as 17:34:54 e o outro as 16:31:03, o terceiro devem ter apagado ). 1 hora de diferença não deve ter sido tão não intencional assim né?

Até!

M

Caro amigo continuo dizendo que o post em duplicidade não foi intensional (sou novo no forum e em java, não sou profissional, alias nem trabalho com programação, estou fazendo uns exercicios da faculdade), se voce não quizer ajudar cara! beleza é so ficar na tua!

Criado 19 de novembro de 2008
Ultima resposta 20 de nov. de 2008
Respostas 6
Participantes 3