cami-la / collections-java-api-2023

Este repositório é referente ao curso "Collection Framework API Java" e é uma valiosa contribuição para a comunidade de desenvolvedores Java, fornecendo exemplos práticos e recursos educacionais relacionados à poderosa API de coleções da linguagem Java.
https://web.dio.me/course/conhecendo-collections-java/learning/c5d6f4e1-6d05-4eea-93d8-d292c708999f
1.05k stars 766 forks source link

Pesquisa Map - obterProdutoMaisCaro() #3

Open pablovvoliveira opened 1 year ago

pablovvoliveira commented 1 year ago

Olá, professora Camila. Tudo bem?

Eu estava tendo um problema nos testes do método obterProdutoMaisCaro(), sempre retorna o último produto instanciado, independente do valor. Comparei meu código com o seu e a implementação do método estava correta.

Copiei o seu método main e funcionou. Mas observei que o último produto é o mais caro: estoque.adicionarProduto(1L, "Produto A", 1, 5.0); estoque.adicionarProduto(2L, "Produto B", 5, 11.0); estoque.adicionarProduto(3L, "Produto C", 3, 15.0); estoque.adicionarProduto(8L, "Produto D", 2, 23.0);

Sendo assim, eu coloquei o valor mais alto no Produto A, 50.0; mas o retorno no terminal continua o Produto D: Produto mais caro: Produto{nome='Produto D', preco=23.0, quantidade=2}

Acredito que tenha algum problema no método. Pode me ajudar, por favor?

cami-la commented 1 year ago

Oi, @pablovvoliveira. Tudo ótimo e por aí?

Tenta esse código aqui:

public Produto obterProdutoMaisCaro() {
    Produto produtoMaisCaro = null;
    double maiorPreco = Double.MIN_VALUE;
    for (Produto p : estoqueProdutosMap.values()) {
      if (p.getPreco() > maiorPreco) {
        produtoMaisCaro = p;
        maiorPreco = p.getPreco(); //esqueci de atualizar o valor do maiorPreco com o preço do produto para continuar as comparações.
      }
    }
    return produtoMaisCaro;
  }

Esqueci de atualizar o valor do maiorPreco com o preço do produto para continuar as comparações. :(

Muito obrigada pela observação, viu? Vou atualizar o repositório agora!

Bons estudos e caso encontre algum outro erro, me avisa que vamos atualizando!