Java 8: Streams Infinitos

EffortlessPhosphorus avatar
EffortlessPhosphorus
·
·
Download

Start Quiz

Study Flashcards

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

More Quizzes Like This

Java Concurrency and I/O Stream Quiz
5 questions
Java I/O Streams Quiz
10 questions
Use Quizgecko on...
Browser
Browser