-
Notifications
You must be signed in to change notification settings - Fork 862
Description
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.