Manipulação de matrizes em JAVA
06/07/2020
0
Bom dia, estou desenvolvendo um sistema bem simples de estoque onde os itens serao armazenados em uma matriz segue codigo:
Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.
package main; import java.io.Console; import java.util.Arrays; import java.util.Scanner; public class IncluirItem{ public static void main(String[] args) { String[][] itens = new String[2][5]; String[] campos = new String[7]; int opcao = 0; int remover; int verificar = 0; int adcionar = 0; int tamanho = 2; Scanner sc = new Scanner(System.in); campos [1] = "Nome"; campos [2] = "Codigo de barras"; campos [3] = "quantidade"; campos [4] = "validade"; campos [5] = "data de entrada"; do { System.out.println("\n\n### Sistema de estoque - simplificado ###"); System.out.println("========================================="); System.out.println(" | 1 - Adcionar itens |"); System.out.println(" | 2 - Excluir itens |"); System.out.println(" | 3 - Mostrar itens |"); System.out.println(" | 0 - Sair |"); System.out.println("=========================================\n"); System.out.println("Escolha uma opcao: "); opcao = sc.nextInt(); System.out.print("\n"); switch (opcao) { case 1: System.out.println("Cadastro de itens: "); //Adciona itens for (int i = 0; i <2; i++) { System.out.println("Adcionar item? "); System.out.println("1 para sim \n2 para nao: "); adcionar = sc.nextInt(); if (adcionar == 1) { System.out.printf("%d. item \n", (i+1)); verificar = verificar + 1; for (int j=0; j < 5; j++) { System.out.printf("%s ", campos[j+1]); System.out.printf("= ", i,(j+1)); itens[i][j] = sc.next(); } System.out.printf("\n"); } else { break; } } break; case 2: //Remove itens System.out.println("Exclusao de itens: "); if(verificar > 0) { for (int i = 0; i <2; i++) { System.out.printf("%d. item \n", (i+1)); System.out.printf("ID do produto= 00%d \n", (i+1)); System.out.printf("\n"); } } else { System.out.println("Nenhum item listado!"); } System.out.println("\nEscolha o numero do item a ser removido: \n"); remover = sc.nextInt(); for (int i = 0; i <2; i++) { if(remover == 2) { itens[i] = itens[i-1]; } } break; case 3: //Mostra itens if(verificar > 0) { for (int i = 0; i <2; i++) { if (verificar == 2) { System.out.printf("%d. item \n", (i+1)); System.out.printf("ID do produto= 00%d \n", (i+1)); for (int j=0; j < 5; j++) { System.out.printf("%s ", campos[j+1]); System.out.printf("= %s \n", itens [i][j]); } System.out.printf("\n"); } else { itens = Arrays.copyOf(itens, tamanho - 1); verificar = 0; System.out.printf("%d. item \n", (i+1)); System.out.printf("ID do produto= 00%d \n", (i+1)); for (int j=0; j < 5; j++) { System.out.printf("%s ", campos[j+1]); System.out.printf("= %s \n", itens [i][j]); } System.out.printf("\n"); break; } } } else { System.out.println("Nenhum item listado!"); } break; default: System.out.println("Opção Inválida!"); break; } } while(opcao != 0); } }
Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.
Gabriel Pavolin
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)