Dúvidas ou feedbacks? Deixe um comentário! A intenção é ajudar o máximo de pessoas possível. Então fico muito feliz em responder seu comentário ou receber uma sugestão para próximos vídeos!
Ainda depois de 4 anos, seus vídeos ainda nos ajudam ! Fiz vários cursos caríssimos e não entendia sobre stream e lambda. Mas com seus vídeos tudo ficou mais fácil. Muito Obrigado !!!!
Sinceramente, tua didática é melhor que a dos profs da faculdade. Teu canal tá me ajudando demais no trabalho. Parabéns e obrigado pelo trabalho excelente e disponibilização de conteúdo gratuitamente.
Sensacional ! Completamente profissional, desde o notepad listando os itens que vai falar, a saida no console separada na tela, o artigo no final. Fora a aula que foi espetacular ! Parabens de verdade pelo profissionalismo e divulgar esses conteudos no youtube.
Mais um 10 pra vc. Estou apredendo muito contigo. Reciclagem java nota 1000. Obrigado por compartilhar seu conhecimento e dar bom exemplo de disseminar conhecimento com qualidade e de forma simples....
Mano.... Seu canal é uma mina de ouro, pra nós Javeiros. Tenho 10 anos de Java... Confesso que nunca fui o profissional ideal. Não tinha o costume de estudar! Mas sabe como é, uma hora eu teria que mudar. Estou estudando pra certificação Java SE 11. E suas aulas tem me ajudado bastante... Tu tem cursos na Udemy?? Manda link, que eu faço questão de comprar.
Muito obrigado, Lucas! Meu objetivo é realmente que seja um ótimo canal para quem já é desenvolvedor Java. Por isso o slogan: Desenvolva seu Java! Meu curso da Udemy você tá vendo aqui, hehe. Não vendo nada por lá, todo o meu conteúdo está disponível aqui em formato de playlists, e eu tenho a esperança de que aqueles que querem apoiar o canal se tornarão membros. É no botão Seja Membro, do lado do Inscrever-se. Muito obrigado por querer apoiar! :)
Eu havia visto esse video a 3 meses atrás mas acabei não usando stream no dia a dia e como vc disse, a gente esquece tudo. Parecia q eu estava vendo o vídeo pela primeira vez.
Muito top seus vídeos, já me inscrevi no canal! Estava com umas dúvidas sobre Stream e você tirou quase todos!... só ficou faltando um que seria esse que vou lhe perguntar agora rsrsrsr Eu tenho um classe "Curso" e dentro dela uma lista de "Aula", para eu pegar todas as aulas eu faria 2 laços "for" como estou utilizando no código abaixo, e gostaria de saber como fazer isso por Stream pois estou tentando mas até agora só consegui gerando uma "lista de lista"... List aulas = new ArrayList(); for (Curso curso : cursos) { for (Aula aula : curso.getAulas()) { aulas.add(aula); } }
@@rinaldodev Eu pesquisei, pesquisei sobre os métodos do stream e achei esta solução uns 2 dias depois de ter lhe perguntando... mesmo assim muito obrigado pela resposta. Vc tem algum curso de java com spring boot?
Como voce faz pra criar essas variaveis com o atalho? em 12:00 vc fala sobre o retorno do groupingBy e ai cria um Map de Boolean e List de Integer de forma bem rapida.
Excelente didática, sempre acompanho seu canal! Parabéns pelo conteúdo acredito que tem ajudado muita gente e aproveitando o ensejo seria muito bacana uma playlist voltada a clean code, tdd e design patterns.
Legal Rinaldo! Parabéns pela iniciativa! Mas acho que seria ainda mais interessante colocar ou citar também as desvantagens de usar streams e fazer umas comparações de desempenho das abordagens (loops explícitos/implícitos). Grande Abraço ;)
Então, TXK0, depende pra que você está usando o Scanner. Para ler aquivos, nem precisa do Scanner. Aqui tem dois bons exemplos: stackoverflow.com/questions/29611661/how-to-make-scanner-strings-into-a-stream-in-java Fora isso, eu dou vários exemplos de como criar Streams nesse vídeo: th-cam.com/video/GXfPBb-8YOE/w-d-xo.html Talvez te ajude. Espero ter contribuído. :)
Com System.in aqui tem outro exemplo: stackoverflow.com/a/29154965 Para arquivos, o exemplo do meu comentário anterior funciona bem: stackoverflow.com/a/29611792 Espero ter ajudado! :)
Fala, cara! Em casos simples, sim, porque as operações intermediárias só são chamadas conforme necessário! Uma exceção é quando você usa flatMap, que não é lazy. Outra é quando você chama .sorted(), porque pra ordenar o stream é necessário passar por todos os elementos. E, por fim, se o stream for parallel(), é mais performático chamar findAny() do que findFirst(), caso qualquer elemento seja aceitável.
Muito boa explicação Rinaldo, parabéns pelo conteúdo. Minha pergunta é, se você pretende fazer PlayLists de Cursos, tem hoje no TH-cam, existe uma intenção assim ?
Fala Renato! Obrigado pelo feedback, é sempre muito importante! Quanto às playlists, já existe uma de Java 8, e com certeza irei criar outras com o passar do tempo. ;)
Rinaldo como seria este codigo usando o stream List produtos = daoProduto.listaProduto();
for (Produto produto : produtos) { Listitem item = new Listitem(); Listcell cell1 = new Listcell(produto.getCodigo() + ""); Listcell cell2 = new Listcell(produto.getNomeProduto()); item.appendChild(cell1); item.appendChild(cell2); item.setValue(produto); lProdutos.appendChild(item); } produtos.stream().forEach(e -> System.out.println(e)); tenho o erro diz "e" cannot to be resolved to a variable, create local variable, estou a usar java 8.
Olá, Ivan! Para fazer o Stream, nesse caso, como você está tratando com várias classes, ficaria bem "diferente" do normal. Você faria mais ou menos assim (o código provavelmente não está compilando, porque não tenho suas classes aqui pra deixar 100%): produtos.stream() .map(produto -> { Listitem item = new Listitem(); Listcell cell1 = new Listcell(produto.getCodigo() + ""); Listcell cell2 = new Listcell(produto.getNomeProduto());
item.appendChild(cell1); item.appendChild(cell2); item.setValue(produto); }) .forEach(item -> lProdutos.appendChild(item)); Quanto a segunda parte da sua pergunta, certamente o Java 8 não está corretamente configurado. Verifique a versão do Java no projeto, na sua IDE, e também as versões declaradas no pom.xml, se for o caso.
Boas,será que posso usar a mesma maneira quando for fazer um select porque faço o select e retorno uma lista e para colocar na lista faço while(Rs.next) e adiciono na Lista, usar o map e collector. Tolist?
Não é tão simples porque o ResultSet não é um Iterator. Se quiser criar um Wrapper pra ele, aqui tem um bom exemplo: stackoverflow.com/a/42898956/1363540 Mas você não precisa sair trocando tudo no seu código pra usar Streams, principalmente aquilo que já está pronto, testado e funcionando. :) Use com sabedoria!
Dúvidas ou feedbacks? Deixe um comentário! A intenção é ajudar o máximo de pessoas possível. Então fico muito feliz em responder seu comentário ou receber uma sugestão para próximos vídeos!
Ainda depois de 4 anos, seus vídeos ainda nos ajudam ! Fiz vários cursos caríssimos e não entendia sobre stream e lambda. Mas com seus vídeos tudo ficou mais fácil. Muito Obrigado !!!!
Streams e concorrência é tenso
Incrível um conteúdo desses disponível de graça! Muito obrigado!
Explicação clara e objetiva, muito obrigada!
Sinceramente, tua didática é melhor que a dos profs da faculdade. Teu canal tá me ajudando demais no trabalho. Parabéns e obrigado pelo trabalho excelente e disponibilização de conteúdo gratuitamente.
Valeu, Guilherme! Muito obrigada pelo reconhecimento! Não deixe seu professores verem o comentário! Kkkk
Excelente vídeo Rinaldo.
Excelente aula! Não lembro a ultima vez que aprendi tanto em pouco tempo.
Conteúdo de excelente qualidade, bom saber que vc é de Brasília e está fazendo um conteúdo desses para compartilhar rsrs
Valeu!
Sensacional ! Completamente profissional, desde o notepad listando os itens que vai falar, a saida no console separada na tela, o artigo no final. Fora a aula que foi espetacular ! Parabens de verdade pelo profissionalismo e divulgar esses conteudos no youtube.
Obrigado pelo reconhecimento, André!
Parabéns pela didática... conteúdo top... simplesmente sensacional!
Muito bom. Ajudou muito. Obrigada!
Muito obrigada pelo vídeo! Ajudou demais
Excelente conteúdo! Obrigado!
Show de bola.
Tua didática é sensacional. Parabéns de verdade e muito obrigado por compartilhar esse conteúdo fantástico.
Essa playlist é um tesouro do TH-cam. Obrigado por divulgar esse conhecimento de graça. Sucesso pra ti sempre!!!
Obrigado e aproveite!
Parabéns pela didática, incrível.
Obrigado e bons estudos!
Olha mesmo depois de 3 anos do post, ainda continua ajudando as pessoas. Parabéns Rinaldo
Ano após ano, este vídeo continua fazendo escola. Continua atual, útil e didático. Obrigado pelo seu tempo! Deus abençoe a sua brilhante didática.
Pois é. Segue firme e forte! hehe
Parabéns pela excelente didática! Me ajudou muito
Que bom que ajudou!
Parabéns pela aula e a clareza.
Que bom que curtiu, Gabriel! Valeu!
Muito bom, parabéns pelo conteúdo !!!!!!!!
Valeu, Lucas! Que bom que tá curtindo!
Ganhou mais um inscrito. O cara explica bem demais.
Pô, Alexandre, valeu demais!
Bem explicado, direto ao ponto!
Valeu, Jorge!
Melhores vídeos sobre Java8
Muito bom receber um comentário como este, DanT! Valeu! E espero que possa te ajudar bastante!
Esse groupinBy é uma obra de arte. Que vídeo top.
Traz mais assuntos sobre retornos do map, por favor.
Excelente! Parabéns!
Obrigado 😃
Que conteúdo top mano
Muiiiito obrigado
Cara, que incrível! Material muito bom! Parabéns, mano! De verdade!
Raaapaaaz que conteúdo massa você tem aqui... tô aproveitando!!! Concordo com os demais, didática excelente e que seu canal é uma mina de ouro! rsrs
Mais uma excelente aula
Muito obrigado!
Mais um 10 pra vc. Estou apredendo muito contigo. Reciclagem java nota 1000. Obrigado por compartilhar seu conhecimento e dar bom exemplo de disseminar conhecimento com qualidade e de forma simples....
Valeu, Joao! Muito bom ler um comentário desses!
Já aproveita pra compartilhar com a galera que pode estar precisando também! hehe
private static void ignoraTresPrimeirosValoresEMultiplicaOsProximos2(){
List asList = Arrays.asList(1, 5, 2, 16, 10, 1, 5, 2, 78, 7, 2, 100, 1, 0);
asList.stream()
.skip(3)
.limit(2)
.map(element -> element * 2) //Maneira de manipular valores da lista no filtro
.forEach(System.out::println);
}
Método que consegui criar nessa aula, achei legal compartilhar como exemplo
Obrigado pelo conteúdo
Muito bom mano, valeeeeu.
Muito bom cara, show de bola sua aula me ajudou muito
Que bom que ajudou!
2022 essa playlist me ensinando demais . Valeu !
muito bom, eu gosto muito de fazer os algoritmos na mão, mas temos que nos adaptar
Cara, sem duvida uma das melhores didáticas que eu já vi. Muito bom, parabéns!
Valeu, Paulo! Manda essa para os colegas! Hehe
Muito bom!
Excepcional seus vídeos, incrível. Só faltou falar também do flatMap rsrs
Rinaldo, parabéns pela iniciativa. Excelente suas explicações e didática.
Muito obrigado, Raimundo! Da uma olhada no restante da playlist que tem muito material importante e interessante! :D
obrigado pelo conteudo, excelente.
Valeu, Guilherme! Que bom que ajudou!
Mano....
Seu canal é uma mina de ouro, pra nós Javeiros.
Tenho 10 anos de Java...
Confesso que nunca fui o profissional ideal.
Não tinha o costume de estudar!
Mas sabe como é, uma hora eu teria que mudar.
Estou estudando pra certificação Java SE 11.
E suas aulas tem me ajudado bastante...
Tu tem cursos na Udemy??
Manda link, que eu faço questão de comprar.
Muito obrigado, Lucas! Meu objetivo é realmente que seja um ótimo canal para quem já é desenvolvedor Java. Por isso o slogan: Desenvolva seu Java!
Meu curso da Udemy você tá vendo aqui, hehe. Não vendo nada por lá, todo o meu conteúdo está disponível aqui em formato de playlists, e eu tenho a esperança de que aqueles que querem apoiar o canal se tornarão membros. É no botão Seja Membro, do lado do Inscrever-se. Muito obrigado por querer apoiar! :)
Simplesmente d++++
Bom saber que gostou, Gilson!
Parabéns. Conteúdo muito bom!!
Valeu, Guilherme!!
Valeu!
Eu havia visto esse video a 3 meses atrás mas acabei não usando stream no dia a dia e como vc disse, a gente esquece tudo. Parecia q eu estava vendo o vídeo pela primeira vez.
Pois é, Alexandre! Tem que praticar, senão acaba esquecendo.
Parabéns pelos conteúdos do canal. Ótimas explicações.
Muito obrigado!
Excelente conteúdo... Parabéns... Pena que não é possível debbugar o loop implícito... Abcs
Fala, Jefferson! Da uma olhada nesse vídeo!
th-cam.com/video/lJjNDnqXUsw/w-d-xo.html
Muito bom!!
Vlw!
Valeu, Baltham!!
Parabéns pelo vídeo, me ajudou demais. Ótimo conteúdo e excelente didática.
Sensacional! Didática muito boa e direta. Ja deixei o like e "dei follow!
Muito obrigado 😁
Cara, muito bom
Valeu, cleyton!!
O que eu estava precisando para ampliar meus conhecimentos em Java. Muito obrigado pelos vídeos. + 1 inscrito
Valeu, Thiago! Muito bom saber que ajudou!!
Muito bem explicato. Obrigadão!!!!
Valeu, Neto! Obrigado pelo feedback!
Ótima aula, Rinaldo!! Você tem uma excelente didática.
Muito obrigado, Edilson! Amanhã tem vídeo novo!
Muito top seus vídeos, já me inscrevi no canal!
Estava com umas dúvidas sobre Stream e você tirou quase todos!... só ficou faltando um que seria esse que vou lhe perguntar agora rsrsrsr
Eu tenho um classe "Curso" e dentro dela uma lista de "Aula", para eu pegar todas as aulas eu faria 2 laços "for" como estou utilizando no código abaixo, e gostaria de saber como fazer isso por Stream pois estou tentando mas até agora só consegui gerando uma "lista de lista"...
List aulas = new ArrayList();
for (Curso curso : cursos) {
for (Aula aula : curso.getAulas()) {
aulas.add(aula);
}
}
Faça um stream de curso e use a opção flatMap passando aula.stream, e depois collect to list. ;)
@@rinaldodev Eu pesquisei, pesquisei sobre os métodos do stream e achei esta solução uns 2 dias depois de ter lhe perguntando... mesmo assim muito obrigado pela resposta.
Vc tem algum curso de java com spring boot?
Muito bom Rinaldo! Parabéns.... Continue, seus vídeos estão me ajudando muito!
Muito bom saber disso, Joanne! Muito obrigado!
Como voce faz pra criar essas variaveis com o atalho? em 12:00 vc fala sobre o retorno do groupingBy e ai cria um Map de Boolean e List de Integer de forma bem rapida.
Coloca o curso no final da linha (ou seleciona ela), CTRL+1 e Enter.
Cara, muito obrigado pelo conteúdo. Você é extremamente didático e conteúdo é muito bom, tem me ajudado muito.
Valeu, Rafael! Muito bom saber!
Sempre tive dúvidas como usar, agora estou bem confiante.
Valeu, Rafael! Lembre de ver os outros vídeos e praticar BASTANTE!
Muito bom o vídeo Rinaldo, parabéns!
Bom saber, Kaio! Muito obrigado!
groupingby salvou minha vida rs.
Haha. Muito bom! Depois mostra aí qual foi tua situação!
Excelente didática, sempre acompanho seu canal!
Parabéns pelo conteúdo acredito que tem ajudado muita gente e aproveitando o ensejo seria muito bacana uma playlist voltada a clean code, tdd e design patterns.
Muito obrigado!
Legal Rinaldo!
Parabéns pela iniciativa!
Mas acho que seria ainda mais interessante colocar ou citar também as desvantagens de usar streams e fazer umas comparações de desempenho das abordagens (loops explícitos/implícitos).
Grande Abraço ;)
Olá Jefferson. Obrigado pelo feedback e pela ideia! Assim que possível abordo esse assunto. ;)
Há como usar as streams para receber algum input utilizando o Scanner? Se sim, como?
Então, TXK0, depende pra que você está usando o Scanner.
Para ler aquivos, nem precisa do Scanner.
Aqui tem dois bons exemplos: stackoverflow.com/questions/29611661/how-to-make-scanner-strings-into-a-stream-in-java
Fora isso, eu dou vários exemplos de como criar Streams nesse vídeo: th-cam.com/video/GXfPBb-8YOE/w-d-xo.html
Talvez te ajude.
Espero ter contribuído. :)
@@rinaldodev tanto para arquivos quanto para System.in
Com System.in aqui tem outro exemplo: stackoverflow.com/a/29154965
Para arquivos, o exemplo do meu comentário anterior funciona bem: stackoverflow.com/a/29611792
Espero ter ajudado! :)
@@rinaldodev ajudou sim. Muito obrigado!
Blz Rinaldo? Utilizando a função findFirst() após um filtro eu teria um mecanismo similar ao break nos loops tradicionais? Abraço.
Fala, cara! Em casos simples, sim, porque as operações intermediárias só são chamadas conforme necessário!
Uma exceção é quando você usa flatMap, que não é lazy.
Outra é quando você chama .sorted(), porque pra ordenar o stream é necessário passar por todos os elementos.
E, por fim, se o stream for parallel(), é mais performático chamar findAny() do que findFirst(), caso qualquer elemento seja aceitável.
👍👍👍
Obrigado!!
Muito boa explicação Rinaldo, parabéns pelo conteúdo.
Minha pergunta é, se você pretende fazer PlayLists de Cursos, tem hoje no TH-cam, existe uma intenção assim ?
Fala Renato! Obrigado pelo feedback, é sempre muito importante!
Quanto às playlists, já existe uma de Java 8, e com certeza irei criar outras com o passar do tempo. ;)
Rinaldo como seria este codigo usando o stream
List produtos = daoProduto.listaProduto();
for (Produto produto : produtos) {
Listitem item = new Listitem();
Listcell cell1 = new Listcell(produto.getCodigo() + "");
Listcell cell2 = new Listcell(produto.getNomeProduto());
item.appendChild(cell1);
item.appendChild(cell2);
item.setValue(produto);
lProdutos.appendChild(item);
}
produtos.stream().forEach(e -> System.out.println(e)); tenho o erro diz "e" cannot to be resolved to a variable, create local variable, estou a usar java 8.
Olá, Ivan!
Para fazer o Stream, nesse caso, como você está tratando com várias classes, ficaria bem "diferente" do normal.
Você faria mais ou menos assim (o código provavelmente não está compilando, porque não tenho suas classes aqui pra deixar 100%):
produtos.stream()
.map(produto -> {
Listitem item = new Listitem();
Listcell cell1 = new Listcell(produto.getCodigo() + "");
Listcell cell2 = new Listcell(produto.getNomeProduto());
item.appendChild(cell1);
item.appendChild(cell2);
item.setValue(produto);
})
.forEach(item -> lProdutos.appendChild(item));
Quanto a segunda parte da sua pergunta, certamente o Java 8 não está corretamente configurado. Verifique a versão do Java no projeto, na sua IDE, e também as versões declaradas no pom.xml, se for o caso.
Boas,será que posso usar a mesma maneira quando for fazer um select porque faço o select e retorno uma lista e para colocar na lista faço while(Rs.next) e adiciono na Lista, usar o map e collector. Tolist?
Não é tão simples porque o ResultSet não é um Iterator.
Se quiser criar um Wrapper pra ele, aqui tem um bom exemplo: stackoverflow.com/a/42898956/1363540
Mas você não precisa sair trocando tudo no seu código pra usar Streams, principalmente aquilo que já está pronto, testado e funcionando. :)
Use com sabedoria!