Olá, antes de tudo gostaria de avisar que sou iniciante na linguagem JAVA!, tenho um codigo CRUD com arraylist, ja fiz os metodos de adicionar,deletar e buscar, porem estou enfrentando um grande problema com o metodo de atualizar os dados de algum indice desse arraylist (por ex, alterar o atributo id do indice 0, ou nome do indice 3, etc), e gostaria de pedir a ajuda de vocês com esse codigo, gostaria de pelo menos um unico exemplo de um codigo que eu poderia atualizar um dos clientes cadastrados nesse arraylist (e que essa atualização não sobreescrevesse todos os outros clientes cadastrados, apenas esse no qual eu selecionei seja por id,nome,email, etc), obrigado pela paciencia e ajuda!
Segue abaixo os codigos:
Loja.java (Classe main)
import java.util.Scanner;
public class Loja {
public static void main(String[] args) {
Scanner inputInt = new Scanner(System.in);
Scanner inputString = new Scanner(System.in);int Menu, clienteId; String Nome, Email; // Objeto Cliente Cliente objCliente; do { exibirMenu(); Menu = inputInt.nextInt(); System.out.println(); switch (Menu){ // CADASTRAR CLIENTES case 1: System.out.println("===> CADASTRANDO CLIENTES"); System.out.println(); System.out.print("DIGITE O ID: "); clienteId = inputInt.nextInt(); System.out.print("DIGITE O NOME: "); Nome = inputString.nextLine(); System.out.print("DIGITE O EMAIL: "); Email = inputString.nextLine(); System.out.println(); // Criar objeto da classe objCliente = new Cliente(clienteId, Nome, Email); // Guardar no ArrayList Pedido.inserirCliente(objCliente); System.out.println("CLIENTE CADASTRADO COM SUCESSO!!\n"); break; // LISTAR CLIENTES case 2: System.out.println("========================== LISTAGEM DE CLIENTES =========================="); System.out.println("1 - LISTAGEM COMPLETA\n2 - LISTAR QUANTOS CLIENTES ESÃO CADASTRADOS POR ID\n3 - LISTAR QUANTOS CLIENTES ESÃO CADASTRADOS POR NOME\n4 - LISTAR QUANTOS CLIENTES ESÃO CADASTRADOS POR EMAIL"); System.out.print("===> ESCOLHA UMA OPÇÃO: "); int escolhaListarCliente = inputInt.nextInt(); if (escolhaListarCliente == 1){ System.out.println("===> LISTANDO TODOS CLIENTES"); System.out.println(); if (! (Pedido.getListaClientes().isEmpty())) { System.out.println(Pedido.listarCliente()); System.out.println(); } else { System.out.println("NÃO EXISTEM CLIENTES CADASTRADOS!!!"); System.out.println(); } } else if (escolhaListarCliente == 2){ System.out.println("===> LISTANDO CLIENTES PELO ID"); System.out.print("DIGITE O ID: "); clienteId = inputInt.nextInt(); System.out.println(); System.out.println("EXISTEM " + Pedido.listarClienteId(clienteId) + " CLIENTES CADASTRADOS COM ESSE ID | " + clienteId); System.out.println(); } else if (escolhaListarCliente == 3){ System.out.println("===> LISTANDO CLIENTES PELO NOMEL"); System.out.print("DIGITE O NOME: "); Nome = inputString.nextLine(); System.out.println(); System.out.println("EXISTEM " + Pedido.listarClienteNome(Nome) + " CLIENTES CADASTRADOS COM ESSE NOME | " + Nome); System.out.println(); } else { System.out.println("===> LISTANDO CLIENTES PELO EMAIL"); System.out.print("DIGITE O EMAIL: "); Email = inputString.nextLine(); System.out.println(); System.out.println("EXISTEM " + Pedido.listarClienteEmail(Email) + " CLIENTES CADASTRADOS COM ESSE EMAIL | " + Email); System.out.println(); } break; // ATUALIZAR CLIENTES case 3: System.out.println("========================== ATUALIZAÇÃO DE CLIENTES =========================="); System.out.println("1 - ATUALIZAR ID\n2 - ATUALIZAR NOME\n3 - ATUALIZAR EMAIL"); System.out.print("===> ESCOLHA UMA OPÇÃO: "); int escolhaAtualizarCliente = inputInt.nextInt(); if (escolhaAtualizarCliente == 1){ System.out.println(); } else { System.out.println("OPÇÃO INVALIDA!!!"); System.out.println(); } break; // REMOVER CLIENTES case 4: System.out.println("========================== EXCLUSÃO DE CLIENTES =========================="); System.out.println("1 - EXCLUSÃO COMPLETA\n2 - EXCLUSÃO POR ID\n3 - EXCLUSÃO POR NOME\n4 - EXLCUSÃO POR EMAIL"); System.out.print("===> ESCOLHA UMA OPÇÃO: "); int escolhaRemoverCliente = inputInt.nextInt(); if (escolhaRemoverCliente == 1){ Pedido.removerClienteTodo(); } else if (escolhaRemoverCliente == 2){ System.out.println("===> EXCLUSÃO DE CLIENTES POR ID"); System.out.print("DIGITE O ID DO CLIENTE QUE DESEJA EXCLUIR: "); clienteId = inputInt.nextInt(); // If para verificar se o ArrayList com o ID buscado não esta vazio! if (! (Pedido.getListaClientes().isEmpty())){ if (Pedido.removerClienteId(clienteId)){ System.out.println("CLIENTE REMOVIDO COM SUCESSO!!"); System.out.println(); } else { System.out.println("NOME NÃO ENCONTRADO!!!"); System.out.println(); } } else { System.out.println("NÃO EXISTEM CLIENTES CADASTRADOS COM ESSE NOME!!!"); System.out.println(); } } else if (escolhaRemoverCliente == 3){ System.out.println("===> EXCLUSÃO DE CLIENTES POR NOME"); System.out.print("DIGITE O NOME DO CLIENTE QUE DESEJA EXCLUIR: "); Nome = inputString.nextLine(); // If para verificar se o ArrayList com o nome buscado não esta vazio! if (! (Pedido.getListaClientes().isEmpty())){ if (Pedido.removerClienteNome(Nome)){ System.out.println("CLIENTE REMOVIDO COM SUCESSO!!"); System.out.println(); } else { System.out.println("NOME NÃO ENCONTRADO!!!"); System.out.println(); } } else { System.out.println("NÃO EXISTEM CLIENTES CADASTRADOS COM ESSE NOME!!!"); System.out.println(); } } else { System.out.println("===> EXCLUSÃO DE CLIENTES POR EMAIL"); System.out.print("DIGITE O EMAIL DO CLIENTE QUE DESEJA EXCLUIR: "); Email = inputString.nextLine(); // If para verificar se o ArrayList com o email buscado não esta vazio! if (! (Pedido.getListaClientes().isEmpty())){ if (Pedido.removerClienteEmail(Email)){ System.out.println("CLIENTE REMOVIDO COM SUCESSO!!"); System.out.println(); } else { System.out.println("NOME NÃO ENCONTRADO!!!"); System.out.println(); } } else { System.out.println("NÃO EXISTEM CLIENTES CADASTRADOS COM ESSE EMAIL!!!"); System.out.println(); } } break; case 5: System.out.println("SAINDO DO PROGRAMA..."); System.out.println(); break; default: System.out.println("OPÇÃO DE MENU INVALIDA!!!"); System.out.println(); } } while (Menu != 5); } static void exibirMenu(){ System.out.println("========================== CLIENTES =========================="); System.out.println("1 - CADASTRAR"); System.out.println("2 - LISTAR"); System.out.println("3 - ATUALIZAR"); System.out.println("4 - REMOVER"); System.out.println("5 - SAIR DO PROGRAMA"); System.out.print("===> ESCOLHA UMA OPÇÃO: "); }
Pedido.java (Classe onde criei os metodos e o arraylist)
import java.util.ArrayList;
import java.util.Scanner;
public class Pedido {
// Definindo atributos da classe Pedido
private int pedidoId;
private String dataEmissao;
private float valorTotal;
// ArrayList
private static ArrayList<Cliente> listaClientes = new ArrayList<>();
private static ArrayList<itemPedido> listaItem = new ArrayList<>();
// Get and Setters
// pedidoId
public int getPedidoId() {
return pedidoId;
}
public void setPedidoId(int pedidoId) {
this.pedidoId = pedidoId;
}
// dataEmissao
public String getDataEmissao() {
return dataEmissao;
}
public void setDataEmissao(String dataEmissao) {
this.dataEmissao = dataEmissao;
}
// valorTotal
public float getValorTotal() {
return valorTotal;
}
public void setValorTotal(float valorTotal) {
this.valorTotal = valorTotal;
}
// Lista de Clientes
public static ArrayList<Cliente> getListaClientes() {
return listaClientes;
}
// Lista de Itens
public static ArrayList<itemPedido> getListaItem(){
return listaItem;
}
// ===================================================
// Metodos Cliente
// Inserir clientes (INSERT)
static public void inserirCliente(Cliente c) {
listaClientes.add(c);
}
// Listar clientes (READ)
static public String listarCliente() {
String saidaCliente = "";
int i = 1;
for (Cliente c : listaClientes) {
saidaCliente += "INDEX: " + (i++);
saidaCliente += c.Imprimir() + "\n";
}
return saidaCliente;
}
// Listar clientes por ID (READ BY ID)
static public int listarClienteId(int clienteId) {
int quantidadeCliente = 0;
for (Cliente c : listaClientes) {
if (c.getClienteId() == clienteId) {
quantidadeCliente++;
}
}
return quantidadeCliente;
}
// Listar clientes por nome (READ BY NAME)
static public int listarClienteNome(String Nome) {
int quantidadeCliente = 0;
for (Cliente c : listaClientes) {
if (c.getNome().equalsIgnoreCase(Nome)) {
quantidadeCliente++;
}
}
return quantidadeCliente;
}
// Listar clientes por email (READ BY EMAIL)
static public int listarClienteEmail(String Email) {
int quantidadeCliente = 0;
for (Cliente c : listaClientes) {
if (c.getEmail().equalsIgnoreCase(Email)) {
quantidadeCliente++;
}
}
return quantidadeCliente;
}
// GAMBIARRA STARTS
// Alterar id do cliente
// Alterar nome do cliente
// Alterar email do cliente
// GAMBIARRA ENDS
// Remover todos os clientes
static public void removerClienteTodo() {
listaClientes.clear();
}
// Remover clientes pelo ID (REMOVE BY ID)
static public boolean removerClienteId(int clienteId) {
for (Cliente c : listaClientes) {
if (c.getClienteId() == clienteId) {
listaClientes.remove(c);
return true;
}
}
return false;
}
// Remover clientes por nome (REMOVE BY NAME)
static public boolean removerClienteNome(String Nome) {
for (Cliente c : listaClientes) {
if (c.getNome().equalsIgnoreCase(Nome)) {
listaClientes.remove(c);
return true;
}
}
return false;
}
// Remover clientes por email (REMOVE BY EMAIL)
static public boolean removerClienteEmail(String Email) {
for (Cliente c : listaClientes) {
if (c.getEmail().equalsIgnoreCase(Email)) {
listaClientes.remove(c);
return true;
}
}
return false;
}
// ---------------------------------------------------
// Metodos itemPedido
// Inserir itens (INSERT)
static public void inserirItem(itemPedido i){
listaItem.add(i);
}
// Listar itens (READ)
static public String listarItem() {
String saidaItem = "";
int j = 1;
for (itemPedido i : listaItem) {
saidaItem += "INDEX: " + (j++);
saidaItem += i.Imprimir() + "\n";
}
return saidaItem;
}
// Listar clientes por ID (READ BY ID)
static public int listarItensId(int itemPedidoId) {
int quantidadeItem = 0;
for (itemPedido i : listaItem) {
if (i.getItemPedidoId() == itemPedidoId) {
quantidadeItem++;
}
}
return quantidadeItem;
}
// Listar itens por nome (READ BY ITEM)
static public int listarItemNome(String Item) {
int quantidadeItem = 0;
for (itemPedido i : listaItem) {
if (i.getItem().equalsIgnoreCase(Item)) {
quantidadeItem++;
}
}
return quantidadeItem;
}
// Listar itens por quantidade (READ BY QUANTITY)
static public int listarItensQuantidade(int itemQuantidade) {
int quantidadeItem = 0;
for (itemPedido i : listaItem) {
if (i.getQuantidade() == itemQuantidade) {
quantidadeItem++;
}
}
return quantidadeItem;
}
// Listar itens por preço (READ BY PRICE)
static public float listarItensPreco(float itemPreco) {
int quantidadeItem = 0;
for (itemPedido i : listaItem) {
if (i.getPrecoUnitario() == itemPreco) {
quantidadeItem++;
}
}
return quantidadeItem;
}
//
// Remover todos os itens
static public void removerItemTodo() {
listaItem.clear();
}
// Remover itens pelo ID (REMOVE BY ID)
static public boolean removerItemId(int itemPedidoId) {
for (itemPedido i : listaItem) {
if (i.getItemPedidoId() == itemPedidoId) {
listaClientes.remove(i);
return true;
}
}
return false;
}
// Remover itens por nome (REMOVE BY NAME)
static public boolean removerItemNome(String Item) {
for (itemPedido i : listaItem) {
if (i.getItem().equalsIgnoreCase(Item)) {
listaClientes.remove(i);
return true;
}
}
return false;
}
// Remover clientes pelo preço (REMOVE BY PRICE)
static public boolean removerItemPreco(float itemPreco) {
for (itemPedido i : listaItem) {
if (i.getPrecoUnitario() == itemPreco) {
listaClientes.remove(i);
return true;
}
}
return false;
}
}
Cliente.java (Classe onde defini os atributos de cliente e os constructors)
public class Cliente {
// Definindo atributos da classe Cliente
private int clienteId;
private String Nome;
private String Email;
// Constructor default
public Cliente() {
}
// Constructor sobrecarregado
public Cliente(int clienteId, String nome, String email) {
this.clienteId = clienteId;
Nome = nome;
Email = email;
}
// Get and Setters
// clienteId
public int getClienteId() {
return clienteId;
}
public void setClienteId(int clienteId) {
this.clienteId = clienteId;
}
// Nome
public String getNome() {
return Nome;
}
public void setNome(String nome) {
Nome = nome;
}
// Email
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
// Metodo da classe
public String Imprimir(){
return " ID: " + clienteId + " | NOME: " + Nome + " | EMAIL: " + Email;
}
}