Open diego-bernardesb opened 11 months ago
Show!! Ficou ótima sua solução. Parabéns!
Acabei de atualizar o repositório e resolvi este método da seguinte forma:
public void removerLivro(String titulo) {
List<String> chavesRemover = new ArrayList<>();
for (Map.Entry<String, Livro> entry : livros.entrySet()) {
if (entry.getValue().getTitulo().equalsIgnoreCase(titulo)) {
chavesRemover.add(entry.getKey());
}
}
for (String chave : chavesRemover) {
livros.remove(chave);
}
}
Fiz dessa forma, porque talvez tenha livros com chave diferentes, porém o nome do livro pode ser igual. Vê se você entendeu minha lógica.
Qualquer dúvida, fico à disposição! (:
Sim, ficou bem tranquilo de entender acabou que foi realizada mas um for pra dar uma segurança de remover apenas o livro correto de acordo com a chave, ficou muito bom
Com Stream API
fica ainda mais simples.
public void removerLivro(String titulo) {
livros.values()
.removeIf(livro -> livro.getTitulo().equalsIgnoreCase(titulo));
}
No próximo curso comigo aqui na DIO você vai aprender sobre Stream e como facilita na manipulaçao das Collections.
Oi tudo bem, realizando o desfio de ordenação do com Map me deparei com um erro na hora de executar o método de remover livro, essa foi a solução que consegui chegar, em vez de criar uma variável do obj Livro, troquei para uma String, e em vez de passar o .getValue() passo o .getKey(), pois a IDE acabou dando um alerta dizendo que não conseguia encontra a key para realizar a remoção
Codigo que não funcionou:
Codigo funcionou e removeu :