Gostaria de deixar as avaliações das temporadas com duas casas depois da virgula. Existe algum metodo que faça isso dentro do Collectors?
Gostaria de deixar as avaliações das temporadas com duas casas depois da virgula. Existe algum metodo que faça isso dentro do Collectors?
Oi Gabriel, tudo bem?
Dentro do método Collectors.averagingDouble
, não há um recurso diretamente incorporado para especificar a formatação numérica desejada, como a limitação de casas decimais após a vírgula. Entretanto, você pode formatar os valores após a coleta.
Aqui está um exemplo de como você pode fazer isso:
Map<Integer, Double> avaliacaoTemporada = episodios.stream()
.filter(e -> e.getAvaliacao() > 0.0)
.collect(Collectors.groupingBy(
Episodio::getTemporada,
Collectors.averagingDouble(Episodio::getAvaliacao)
));
// Formatação dos valores com duas casas decimais após a vírgula
DecimalFormat df = new DecimalFormat("#.##");
avaliacaoTemporada.forEach((temporada, mediaAvaliacao) -> {
String valorFormatado = df.format(mediaAvaliacao);
System.out.println("Temporada: " + temporada + ", Avaliação Média: " + valorFormatado);
});
Neste exemplo, após coletar a média de avaliação para cada temporada, utiliza-se a classe DecimalFormat
para formatar os valores com duas casas decimais após a vírgula. Em seguida, os valores formatados são impressos ou podem ser manipulados conforme a necessidade do seu programa.