Com ocriar metodo remover e alterar com array list?

5 respostas
G

Cadastro De Produtos: Bomboniere XYZ

package cadastrarprodutos;
import java.util.ArrayList;

public class Produtos {
String dados;
ArrayList<Itens> Produtos = new ArrayList<Itens>();
Itens novoProduto;

public Produtos() {
        this.dados = ""; //construtor de dados
}

Método para cadastrar os produtos

public void cadastrarProdutos(int codigo, String descricao, double preco, String data) {
                
    novoProduto = new Itens();
    novoProduto.setCodigo(codigo);
    novoProduto.setDescricao(descricao);
    novoProduto.setPreco(preco);
    novoProduto.setData(data);
    Produtos.add(novoProduto); //adiciona na posição do arraylist
    System.out.println("Produto cadastrado com sucesso.");
    novoProduto.setCodigo(codigo);
    }

Fim do metodo para cadastrar os produtos método para mostrar os produtos:

public String mostrarProdutos() {
        CadastrarProdutos op = new CadastrarProdutos();
        
        for (Itens produtos : Produtos) 
        {
        System.out.println (" Código do produto: " + produtos.getCodigo());
        System.out.println (" Descrição do produto: " + produtos.getDescricao());
        System.out.println (" Preço do produto: R$: " + produtos.getPreco());
        System.out.println (" Data de Cadastro do Produto:" + produtos.getData());
        }           
    return dados;  
    }
    
     
    }

Esse é minha classe produtos com metodos cadastrar e mostrar, alguem sabe como fazer o remover e alterar?

5 Respostas

Jonas_B_a_r_r_o_s

O metodo mostrarProdutos() está funcionando?

G

está sim

////codigo classe itens
package cadastrarprodutos;
//Classe com os gets e sets

/**
*

  • @author Gustavo
    */
    public class Itens {
private String codigo;

private String descricao;

private double preco;
Itens(String codigo, String descricao, double preco, String data) {
    this.codigo = codigo;
    this.descricao = descricao;
    this.preco = preco;
    this.data = data;
}
public String getCodigo() {
    return codigo;
}

public void setCodigo(String codigo) {
    this.codigo = codigo;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public double getPreco() {
    return preco;
}

public void setPreco(double preco) {
    this.preco = preco;
}

public String getData() {
    return data;
}

/////////////////////////
principal

package cadastrarprodutos;

import java.util.Scanner;

public class CadastrarProdutos {
public static void main(String[] args) {

Scanner teclado = new Scanner (System.in);

int menu = 0;

Produtos p1 = new Produtos();

do {

System.out.println (" <strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><em>");

System.out.println ("|Sistema De Cadastro De Produtos:   |");

System.out.println ("|Qual item deseja escolher?         |");

System.out.println ("|1 - Cadastrar Produtos             |");

System.out.println ("|2 - Exibir Produtos                |");

System.out.println ("|3 - Sair                           |");

System.out.println ("|</em></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>|");

menu = teclado.nextInt();
if (menu == 1) 
            {
         
            System.out.print ("| Digite o código do produto: |");
            String codigo = teclado.next();
            System.out.print(" |Digite o nome do produto:    |");
            String descricao = teclado.next();
            System.out.print(" |Digite o preço do produto:   |");
            double preco = teclado.nextDouble();
           
            System.out.print ("Data de Cadastro:");
            String data = teclado.next();
           
            // chamando o metodo
            p1.cadastrarProdutos(codigo, descricao, preco, data);

            }else if (menu == 2) 
            {
            // chamando o metodo mostrar Produtos
           System.out.println  (" ___________________________________");  
            System.out.println ("Lista do(s) produto(s) cadastrado(s):");
            p1.mostrarProdutos();
            System.out.println ("___________________________________");  
            } else if (menu == 3) 
            {
            System.exit(0);
            }
            if ((menu <= 3) && (menu >= 1))
            {
            } else {
            System.out.println("Por favor escolha uma opção correta \n entre 1 e 3!");
  }
        }while (menu != 0);
System.exit(0);

}

}
Jonas_B_a_r_r_o_s

Ficaria mais ou menos assim o remover.

No menu de opção da sua classe de teste, na opção de remover você passa o codigo para o metodo remover

else if (menu == 3) {
System.out,print("Informe o codigo do produto a remover");
int codigo = teclado.nextInt();
Produtos.remover(codigo);
}

Então o metodo remover é executado com o codigo passado

public static void alterar(int codigo) { 
        ArrayList<Produtos> alter = lista; //Aqui ele tem que receber a lista de produtos, para encontrar o codigo, você pode declarar essa ArrayLista como static

        ArrayList<Integer> codigos = new ArrayList<>(); //Onde irá receber a lista de codigos, vindo da lista acima

        for (Produto list :alter) { 
            codigos.add(list.getCodigo());
        }
        if ( codigos.indexOf(codigo) > -1 ){
        Produto produto = new Produto();
        produto.setCodigo(codigo);
        produto.setDesc("Nova descricao");
        }
    }

Não testei, fiz so um exemplo de como pode ser
Lembrando que codigo é bom vc declarar como int
Ops, na verdade esse metodo é para alterar

G

nao funcionou pq ele n apaga todas os dados daquele produto.

Jonas_B_a_r_r_o_s

Na verdade esse metodo é para alterar

Criado 9 de julho de 2016
Ultima resposta 12 de jul. de 2016
Respostas 5
Participantes 2