-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dúvida no Reduce #6
Comments
Oi, Bruno. Tudo certinho? Então, você está entendendo sim! Em partes, mas está. <3 Vamos lá:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4);
int acumuladorMultiplicacao = 1;
//Quando o laço começa, vamos multiplicar o primeiro elemento * acumulador. Logo, 1 * 1 = 1.
for (Integer n : numeros) {
acumuladorMultiplicacao *= n; // acumuladorMultiplicacao = acumuladorMultiplicacao * n;
}
System.out.println("Resultado da Multiplicação: " + acumuladorMultiplicacao);
int acumuladorSoma = 0;
//Quando o laço começa, vamos somar o primeiro elemento + acumulador. Logo, 0 + 1 = 1.
for (Integer n : numeros) {
acumuladorSoma += n; // acumuladorSoma = acumuladorSoma + n;
}
System.out.println("Resultado da soma: " + acumuladorSoma);
}
//resultado no console:
Resultado da Multiplicação: 24
Resultado da soma: 10
Com o reduce:
Deu para dar uma clareada? |
A entendi, então ele sempre vai estar ali fazendo a conta junto com o acumulador. Agooooora entendi pra quê serve o acumulador hahaha. Muito obrigado Cami, você é uma queridona. Um grande abraço! |
É isso mesmoooooo!!!!! Uhuuuu. kkkkk Eu quem agradeço por assistir os cursos e se empenhar tanto! Faz meu trabalho fazer sentido! <3 Qualquer dúvida, estamos aqui. Abraços. |
Olá Cami.
Sobre o desafio 12, eu fiz a resolução da seguinte forma:
int produto = numeros.stream().reduce(0, (num1, num2) -> num1 * num2);
Porém, estava dando sempre 0. Então para fins de estudo, joguei no Bard e ele me retornou a seguinte resolução:
int produto = numeros.stream().reduce(1, (num1, num2) -> num1 * num2);
Então acho que não entendi muito para que serve esse número antes da operação, dentro do reduce: antes eu
havia colocado 0, depois tive de colocar 1.
Pelo que você explicou ele é um acumulador certo? Para soma ele funciona normal.
Seria mais ou menos algo como: Acumular utilizando aquele número, já que multiplicação por 0 sempre dará 0.
Se poder me explicar melhor, meio que entendi a lógica mas não entendi como funciona exatamente.
The text was updated successfully, but these errors were encountered: