5 Questions
Como podemos definir um Stream infinito em Java 8?
Através da interface de factory Supplier
Qual é o comportamento do Stream gerado pela método generate?
Ele gera elementos somente quando necessário
Por que devemos ter cuidado quando trabalhamos com Streams infinitos?
Porque eles nunca terminam de executar
Qual é o benefício de usar IntStream em vez de Stream?
Ele remove a necessidade de boxing
Quais operações devem ser evitadas em Streams infinitos?
Operações que necessitem passar por todos os elementos
Study Notes
Streams Infinitos
- Um recurso poderoso do Java 8 é a criação de Streams infinitos através da interface de factory Supplier.
- Podemos definir um Stream infinito definindo a regra para a criação de objetos pertencentes a esse Stream.
- Exemplo: gerar uma lista "infinita" de números aleatórios:
- Criar um objeto Random e um Supplier que gere inteiros aleatórios.
- Usar o método generate para criar um Stream infinito.
Características dos Streams Infinitos
- O Stream gerado por generate é lazy, ou seja, os elementos só são gerados quando necessário.
- Cuidado: operações que necessitem passar por todos os elementos do Stream nunca terminarão de executar.
- Solução: utilizar operações de curto-circuito em Streams infinitos.
Alternativas
- Em vez de usar um Supplier, podemos usar IntSupplier e IntStream para evitar o boxing.
- Exemplo: Random random = new Random(0); IntStream stream = IntStream.generate(() -> random.nextInt());
Saiba como criar Streams infinitos com a interface de factory Supplier em Java 8 e entenda como eles funcionam de forma lazy.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free