Que didática top cara! Descobri recentemente e me ajudou bastante. A comunidade precisa de pessoas assim disseminando conhecimento. Valeu e parabéns!!!
Cara: Didática e tranquilidade para explicar impecáveis!! Meus parabéns! Sempre tive dúvida em relação as outras sobrecargas do 'reduce' e depois deste vídeo, mais claro impossível. Valeu demais! Abraços
Cara muito bom seus conteúdos, sou Dev júnior de experiência e trabalho dando manutenção de projetos antigos , e esses conteúdos que você vem disponibilizando aqui na web vem me ajudando muito a evoluir.
Cara, muito obrigado! Sua didática é muito boa, eu não estava conseguindo entender esse reduce mais complexo que recebe 1 BiFunction e 1 BinaryOperator, mas depois de assistir seu video eu entendi!
Queria tirar um dúvida: vi alguns exemplos na internet a respeito de aprender o reduce e vi em um exemplo que o cara passava dentro do stream o array. Segue o código: int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int max = Arrays.stream(numbers).reduce(0, (a, b) -> a > b ? a : b); // 10 Note que há diferenças entre com oestão os exemplos no vídeo e aqui (no caso o "Arrays" no que, indo pela lógica do vídeo, seria, no meu exemplo, o "numbers"). Minha pergunta é: quando e por qual motivação eu passaria ou não o array dentro de um stream neste caso ou em qualquer outro caso.
Fala, Davi. É importante separar os conceitos. O Stream é uma série de operações que vão sendo aplicadas a cada elemento. A ORIGEM dos dados do Stream, ou seja, quais elementos ele vai tratar, pode ser qualquer coisa. Inclusive tem um vídeo que eu ensino a criar Streams a partir de vários tipos/fontes de dados diferentes: th-cam.com/video/GXfPBb-8YOE/w-d-xo.html Ou seja, se a origem dos dados é uma lista, um array, linhas de um arquivo ou números aleatórios, isso não importa. O Stream é apenas a sequência de operações que é aplicada a esse conjunto de dados. Você vai utilizar quando essas operações são úteis para o problema que você quer resolver. Não sei se está acompanhando a playlist do começo, mas acho que clareia esses aspectos. :)
@@rinaldodev obrigado por responder em primeiro lugar. O conceito de que stream me permite utilizar uma série de funções e creio que compreendo em algum grau. Minha questão inicial é por que no exemplo que citei aqui o cara passa o array dentro da stream e, na maioria das vezes que vejo e faço esse array é da firma como abordou no vídeo. E vou conferir a série de vídeos, sim 😁
O valor de identidade transforma o valor de retorno naquele tipo de valor passado? No caso, se o valor de identidade for inteiro (0 por exemplo), é por isso q eu tenho um integer e não um optional?
Olá, Pedro. Não faz sentido, por dois motivos: - Reduce é uma operação Final, ou seja, depois dela o Stream está finalizado. - A entrada de um reduce é um conjunto de dados, e a saída é um único dado, ou seja, não da pra "encaixar" mais um reduce. É importante conseguir visualizar o Stream como um fluxo de dados, e perceber cada operação que está sendo aplicada. Não sei se já fez, mas recomendo assistir a playlist toda, na sequência, pra construir essa visão.
Que didática top cara!
Descobri recentemente e me ajudou bastante. A comunidade precisa de pessoas assim disseminando conhecimento. Valeu e parabéns!!!
Cara, como eu conheci esse canal só agora?
Tá de parabéns cara... Estou aprendendo muito com seus vídeos.
Fico feliz em saber! Compartilha com os amigos! :D
Cara: Didática e tranquilidade para explicar impecáveis!!
Meus parabéns!
Sempre tive dúvida em relação as outras sobrecargas do 'reduce' e depois deste vídeo, mais claro impossível.
Valeu demais!
Abraços
Valeu, Bruno! Muito bom receber esse feedback!
Cara muito bom seus conteúdos, sou Dev júnior de experiência e trabalho dando manutenção de projetos antigos , e esses conteúdos que você vem disponibilizando aqui na web vem me ajudando muito a evoluir.
Valeu, Maxwell! Muito bom saber!
muito bom!
Cara, muito obrigado!
Sua didática é muito boa, eu não estava conseguindo entender esse reduce mais complexo que recebe 1 BiFunction e 1 BinaryOperator, mas depois de assistir seu video eu entendi!
Obrigado, Matheus! Muito bom saber que foi útil!
Você é excelente, Rinaldo!
Suas explicações são excelentes. Obrigado e parabéns.
top
muito bom
excelente!
Que bom que aproveitou!
show demais, ótima didática. parabéns.
Bons estudos, Paulo! Da uma olhada nas outras playlists e nos conteúdos exclusivos! :)
Muito bom!!
Valeu mano, parabéns pelo vídeo muito F#oda
Exemplos práticas e boa didática. Parabéns, Rinaldo! Abs
Muito obrigado, Júlio!
Muito clara a explicação.
Parabéns! Gostei do teu estilo 👏🏼👏🏼👏🏼
Obrigado, Ronaldo! Que bom que curtiu!
Vídeo extremamente didático Man !!
Valeu pelo feedback, Leandro! Espero que tenha ajudado!
Rinaldo, muito obrigado. Vídeo muito esclarecedor. Você tem uma ótima didática. Creio que deveria estar monetizando esses vídeos na Udemy. Parabéns!
Valeu, João! Talvez eu faça alguma coisa por lá, ainda estou avaliando.
Rinaldo, muito obrigado! Seus vídeos têm sido esclarecedores! Um abraço!
Valeu, José! Se puder compartilhar com seus colegas, vamos esclarecer para mais pessoas! :D
Que didática excelente! Obrigada!
Bons estudos!
Excelente vídeo, conteúdo top!!!
Valeu, Allan! Da uma olhada nos outros conteúdos que tem coisa bem legal!
Obrigado pelo contéudo
Muito bom, explicou muito bem, ainda que nós da TI somos unidos, se não, não teríamos a ajuda de gente como você para nos socorrer kk!
q aula massa
Muito bom...E como sempre ...nota 10...
Que bom que tá curtindo, Joao!! Valeu!
Muito bom.
Valeu, Anderson!
acabei de me inscrever no canal ótimo conteúdo, Parabéns
Valeu, Felipe! Muito bom poder ajudar! Se puder compartilhar com seus colegas, agradeço!
Pode deixar 😁👍
o reduce não necessariamente executa de modo sequencial, por isso a necessidade de a operação binária ser associativa
Queria tirar um dúvida: vi alguns exemplos na internet a respeito de aprender o reduce e vi em um exemplo que o cara passava dentro do stream o array. Segue o código:
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int max = Arrays.stream(numbers).reduce(0, (a, b) -> a > b ? a : b); // 10
Note que há diferenças entre com oestão os exemplos no vídeo e aqui (no caso o "Arrays" no que, indo pela lógica do vídeo, seria, no meu exemplo, o "numbers").
Minha pergunta é: quando e por qual motivação eu passaria ou não o array dentro de um stream neste caso ou em qualquer outro caso.
Fala, Davi.
É importante separar os conceitos. O Stream é uma série de operações que vão sendo aplicadas a cada elemento.
A ORIGEM dos dados do Stream, ou seja, quais elementos ele vai tratar, pode ser qualquer coisa. Inclusive tem um vídeo que eu ensino a criar Streams a partir de vários tipos/fontes de dados diferentes: th-cam.com/video/GXfPBb-8YOE/w-d-xo.html
Ou seja, se a origem dos dados é uma lista, um array, linhas de um arquivo ou números aleatórios, isso não importa. O Stream é apenas a sequência de operações que é aplicada a esse conjunto de dados. Você vai utilizar quando essas operações são úteis para o problema que você quer resolver.
Não sei se está acompanhando a playlist do começo, mas acho que clareia esses aspectos. :)
@@rinaldodev obrigado por responder em primeiro lugar. O conceito de que stream me permite utilizar uma série de funções e creio que compreendo em algum grau. Minha questão inicial é por que no exemplo que citei aqui o cara passa o array dentro da stream e, na maioria das vezes que vejo e faço esse array é da firma como abordou no vídeo. E vou conferir a série de vídeos, sim 😁
O valor de identidade transforma o valor de retorno naquele tipo de valor passado?
No caso, se o valor de identidade for inteiro (0 por exemplo), é por isso q eu tenho um integer e não um optional?
Sim!
Rinaldo, tem como colocar 2 reduces em um só syntax... se quero por exemplo, o minimo e o maximo valor de uma lista. Obrigado
Olá, Pedro. Não faz sentido, por dois motivos:
- Reduce é uma operação Final, ou seja, depois dela o Stream está finalizado.
- A entrada de um reduce é um conjunto de dados, e a saída é um único dado, ou seja, não da pra "encaixar" mais um reduce.
É importante conseguir visualizar o Stream como um fluxo de dados, e perceber cada operação que está sendo aplicada.
Não sei se já fez, mas recomendo assistir a playlist toda, na sequência, pra construir essa visão.
19:39 não acredito que ele perdeu a chance de falar "doublezinho" 😢
Oi. Intstream é a mesma coisa que pegar o array de stream e fazer .stream()?
IntStream é um Stream de primitivos do tipo int.
O mais engraçado é que o Java 8 tem tanta coisa, e já estamos no java 13. Aí aparece uma galera falando que o java vai morrer, kkkkkkkkkkkkkkkkkkk
Pra você ver, Neto! Java é uma linguagem super sólida, e que está dando saltos nessas últimas atualizações!