Skip to content

Correção no método obterProdutoMaisCaro() em aula sobre Maps – variável maiorPreco não é atualizada #112

@juliaazeved0

Description

@juliaazeved0

Olá, Camila!
No módulo sobre Collections em JAVA, há um aula sobre Maps onde métodos são testados, um desses métodos é o método de obterProdutoMaisCaro() que segue da seguinte maneira:

public Produto obterProdutoMaisCaro() {
Produto produtoMaisCaro = null;
double maiorPreco = Double.MIN_VALUE;
if (!estoqueProdutosMap.isEmpty()) {
for (Produto p : estoqueProdutosMap.values()) {
if (p.getPreco() > maiorPreco) {
produtoMaisCaro = p;
}
}
}
return produtoMaisCaro;
}

No entanto, dessa forma o método não atualiza a variável maiorPreco após a verificação (p.getPreco() > maiorPreco), dessa forma o método sempre retornar-a o último valor adicionado e não o Produto com maior preço.
Atualizei a variável maiorPreco após a verificação e deu certo.

public Produto obterProdutoMaisCaro() {
Produto produtoMaisCaro = null;
double maiorPreco = Double.MIN_VALUE;
if (!estoqueProdutosMap.isEmpty()) {
for (Produto p : estoqueProdutosMap.values()) {
if (p.getPreco() > maiorPreco) {
maiorPreco = p.getPreco();
produtoMaisCaro = p;
}
}
}
return produtoMaisCaro;
}

Vi que no repositório do projeto o método já está corrigido.
Minha sugestão é revisar o trecho do vídeo ou incluir uma observação para evitar confusão por parte de quem estiver acompanhando o curso.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions