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

Map #30

Open Suguetsu opened 1 year ago

Suguetsu commented 1 year ago

Hi Camila!

So, on the exercise of comparation about the most espensive product of movie A4V5, you build the method to get return, and u use the Double.MIN.VALUE, but don't update the variable inside of the loop and it runs correctlly , can u explain me?

Então no exercício de comparação de produto mais caro da A4V5, quando voce monta o metodo de pegar o produto mais caro, você usa o Double.MIN.VALUE, mas não atualiza a variável dentro do laço de repetição e mesmo assim o metodo funciona corretamente , pode me explicar o porque?

` public Produto ProdutoMaisCaro() {

    Produto produtoMaisCaro = null;
    double maiorPreco = Double.MIN_VALUE;

    if (!estoqueProdutoMap.isEmpty()) {

        for (Produto p : estoqueProdutoMap.values()) {

            if (p.getPreco() > maiorPreco)
                produtoMaisCaro = p;
                                         ******  maiorPreco, woudn't be here? like maiorPreco = p.getPreco() ??  ******

        }
    }

    return produtoMaisCaro;
}`
cami-la commented 1 year ago

Oi, @Suguetsu. Muito obrigada pelo feedback.

Então, o que que acontece: quando eu fiz os testes, na verdade o laço está pegando sempre o último elemento que por coincidência, no exemplo que utilizei, o último elemento sempre é o maior. Mas o correto é o seguinte:

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();
      }
    }
    return produtoMaisCaro;
  }

Vou regravar esta parte da aula para corrigir isso. Obrigada e qualquer dúvida, fico à disposição! (:

pauloheidenreich commented 4 months ago

Olá Camila e Rodrigo,

Eu estava abrindo uma issue sobre este mesmo assunto e vi que esta já tinha sido resolvido o problema. Muito obrigado.