Olá, sou novo em programação e estou tentando fazer um exercício na qual devo informar o título, autor e ano do livre e quantidade disponível em estoque, sendo esta definida pelo usuário. Depois criar outro método para aumentar o diminuir este estoque.
Estou querendo criar o método para aumentar e diminuir o estoque de um título escolhido pelo usuário. Como faço?
System.out.println("\nDigite + para adicionar ao estoque e - para diminuir");
String resp = new Scanner(System.in).nextLine();
if (resp.equals("+")){
book.get(i).aumentar_estoque();
System.out.println("O título "+book.get(i)+" recebeu mais "+book.get(i).estok+" ao estoque");
}else if(resp.equals("-")){
book.get(i).diminuir_estoque();
System.out.println("O título "+book.get(i)+" retirou mais "+book.get(i).estok+" do seu estoque");
}
}while()
}
Outra forma de fazer é implementar o método equals da classe Livro. A partir daí é possível verificar se o objeto está presente na lista, pegar o seu índice e fazer a modificação do estoque direto no retorno do get. Te economiza algumas linhas no método, elimina o for e fica mais fácil de mandar.
Um exemplo básico seria:
Definir a estratégia do equals (basicona e certamente precisa melhorar)
public boolean equals(Object o){
Livro livro = (Livro) o;
return this.id == o.id;
}
A partir de agora um ArrayList consegue definir se possui um livro cadastrado.
Criando um mock de livros e adicionando num arraylist
Livro l1 = new Livro();
l1.setId(1L);
Livro l2 = new Livro();
l2.setId(2L);
List<Livro> livros = new ArryList<>();
livros.add(l1);
livros.add(l2);
Fazendo a mágica acontecer.
if(livros.contains(l1)){ // aciona o método equals da instância l1 e verifica se ela existe na lista
Livro livro = livros.get(livros.indexOf(l1)); // se existir, pega o indice do objeto na lista e retorna o Livro
livro.addQuantidade(25);
}