Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro ao remover um livro pela sua chave. #95

Open
IgorTudisco opened this issue Jul 23, 2024 · 2 comments
Open

Erro ao remover um livro pela sua chave. #95

IgorTudisco opened this issue Jul 23, 2024 · 2 comments

Comments

@IgorTudisco
Copy link

Caminho => src/main/java/map/Ordenacao/LivrariaOnline.java

Não entendi o método de remover, se puder me explicar melhor eu agradeço.

O meu estava dando erro e quando fui olhar o seu, eu não entendi.

O meu:

 public void removerLivro(String titulo){
        if(!livrariaMap.isEmpty()){            
            for(Livro l : livrariaMap.values()){
                
                if(l.getTitulo() == titulo){
                    livrariaMap.remove(l);
                    break;
                }
            }
            
        }
    }

O Seu:

 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);
    }
  }

https://github.com/IgorTudisco/DIO---Trilha-Java-B-sico/blob/main/Conhecendo_Collections_Java/Map/Livraria/src/livraria/operacao/LivrariaOnline.java

@IgorTudisco
Copy link
Author

Eu mudei para algo parecido com o seu e deu certo, mas ainda não entendi.

@Oliveira2023
Copy link

Entendi assim Igor:
Primeiro foi criado uma lista que vai conter a lista de chaves que serão excluidas, ela cria esta lista porque pode ter mais de 1 chave com o mesmo titulo, neste caso vai adicionando estas chaves nesta lista (chavesRemover)
No 'for' itera sobre as entradas do Map 'livros' -(livros.entrySet) e então verifica se (if) o titulo do map é equivalente ao argumento titulo neste caso ignorando se é maiusculo ou minusculo, e se for igual adiciona a chave deste livro a lista para remover. chavesRemover.add(entry.getKey())
Depois no final itera com 'for' sobre esta lista de chaves para remover e com o metodo remove vai excluindo as chaves no livro - livros.remove(chave)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants