Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio resolvido

package com.github.aldenyjr.exercicios;

import java.util.List;

public class EstatisticasDasNotas {
    public static void main(String[] args) {
        List<Double> notas = List.of(7.5, 8.0, 6.5, 9.0, 10.0);

        double somaNotas = notas.stream().reduce(0.0, Double::sum);
        double media = somaNotas / notas.size();
        double menorNota = notas.stream().min(Double::compare).get();
        double maiorNota = notas.stream().max(Double::compare).get();

        System.out.println("""
                A média das notas é: %.2f
                A menor nota: %.2f
                A maior nota: %.2f
                """.formatted(media, menorNota, maiorNota));
    }
}

Resutado:

A média das notas é: 8,20
A menor nota: 6,50
A maior nota: 10,00
2 respostas
solução!

Oi, Aldeny! Como vai?

Agradeço por compartilhar.

Gostei da forma como você utilizou stream() junto com reduce, min e max pra resolver o problema de forma clara e funcional. O uso do formatted também deixou a saída bem organizada, o que mostra cuidado com a apresentação do resultado.

Uma dica interessante para o futuro é usar o método summaryStatistics(), que já calcula várias estatísticas de uma vez.


import java.util.*;

public class Estatisticas {
    public static void main(String[] args) {
        List notas = List.of(7.5, 8.0, 6.5, 9.0, 10.0);

        DoubleSummaryStatistics stats = notas.stream()
            .mapToDouble(Double::doubleValue)
            .summaryStatistics();

        System.out.println("media: " + stats.getAverage());
        System.out.println("menor: " + stats.getMin());
        System.out.println("maior: " + stats.getMax());
    }
}

Esse código calcula media, menor e maior valor em uma unica operação, deixando o código mais enxuto.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado!