Comments (1)
Oi, @JKaio2003. Tudo certinho?
Então, quando você está utilizando o reduce()
, você não está calculando a média e sim calculando a soma de todos os elementos de dentro da lista.
A implementação do reduce()
está correta, parabéns! Agora só falta calcular a média:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
//somar todos os números
Integer soma = numeros.stream().reduce(0, Integer::sum);
//Calculando a média e imprimindo (soma total dividida pela quantidade de elementos)
System.out.println(soma / numeros.size());
Porém tem um detalhe: como o total da soma está como Integer
, e o cálculo da média é o resultado de uma divisão, se você deixar a soma como Inteiro
, você não irá conseguir pegar os "números quebrados" caso a divisão não seja exata.
Em resumo, para essa média ficar mais assertiva, você pode converter o resultado da soma para o tipo Double
:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
//somar todos os números
Double soma = numeros.stream()
.map(Integer::doubleValue)
.reduce(0d, Double::sum);
//Calculando a média e imprimindo (soma total dividida pela quantidade de elementos)
System.out.println(soma / numeros.size());
Segue outra solução caso você não queira utilizar o reduce()
. O método mapToDouble()
que com ele você tem um outro método chamado average()
:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
double media = numeros.stream()
.mapToDouble(Integer::doubleValue)
.average()
.ifPresent(System.out::println);
Aqui também tem várias implementações que podem te ajudar a responder os outros desafios: https://github.com/cami-la/curso-dio-intro-collections/blob/master/src/br/com/dio/collection/streamAPI/ExerciciosStreamAPI.java
from ganhando_produtividade_com_stream_api_java.
Related Issues (20)
- Duvida desafio 7 HOT 9
- Duvida desafio 16 HOT 2
- Duvida Desafio 5 HOT 3
- Dúvida no Reduce HOT 3
- Dúvida desafio 3 HOT 6
- Desafio 18 HOT 4
- Desafio 14 e 17 HOT 4
- Desafio 14 HOT 3
- Desafio 8 HOT 7
- Dúvida desafio 4 HOT 4
- Desafio 2 HOT 2
- Dúvida desafio 7 HOT 6
- DUVIDA - ERRO NO IMPORT STREAM HOT 5
- um breve e concisa explicação sobre o código abaixo HOT 1
- Duvida Desafio 10 HOT 5
- Duvida Binary Operator HOT 6
- Desafio 7 HOT 1
- Desafio 19 HOT 1
- Desafio 11 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ganhando_produtividade_com_stream_api_java.