Boa noite, sou novo no forum!!
Pessoal tenho arraylist de produtos e na hora que removo um que está na posição 0
o que está na posição 1, passa pra 0
e não pode acontecer isso, pois é uma lista de produtos
exemplo depois no scanner o o usuario vai la digitar la referenciando o que estava na posição 1 e estoura uma exceção:
IndexOutOfBoundsException: Index 1 out of bounds for length 1
pq ele poe la , exemplo: codigo 1 e não tem mais, sendo que o array passa pra 0
obs é um exercicio do curso
método
public void removerQuantidadePraVenda(int quantidade, int codigo) throws QuantidadeInsuficienteException {
var codigoProduto = codigo-1;
if (getListaDosprodutos().get(codigoProduto).getQuantidade() > quantidade){
this.quantidade -= 1;
}else if (getListaDosprodutos().get(codigoProduto).getQuantidade() == 1) {
getListaDosprodutos().remove(codigoProduto);
} else {
throw new QuantidadeInsuficienteException();
}
}
nos parametros do metodo entra uma variavel do scanner la na main, como podem ver eu coloquei um -1 pra justamente na hora que for digitado 1 no scanner, ele subtrair 1 e referenciar a posição 0, ou seja a certa e assim adiante.