Iterable to Stream Java

Postado em por Wolmir Cezer Garbin em Java | 111 Visualizações
Última atualização em:

Este breve tutorial mostra como converter um objeto java Iterable em um fluxo (Stream) realizando algumas operações simples.

Todo mundo tem algo para vender, AnuncieOn.com o melhor site de anúncios grátis de todo o Brasil.

Convertendo Iterable para Stream

A interface Iterable foi projetada tendo em mente a generalidade por isso não fornece nenhum método stream().

Para obter um Stream a partir de um iterable, pode passá-lo para o método StreamSupport.stream() e obter um fluxo:

Considere a lista:

Iterable<Integer> numbers = Arrays.asList(100, 10, 1, 56, 180);

Podemos converter essa instância iterável em um fluxo da seguinte forma:

StreamSupport.stream(numbers.spliterator(), false);

Note que o segundo parametro determina se o fluxo deve ser paralelo ou sequêncial. Usamos false para usar de forma sequêncial.



Por fim, podemos fazer as operações que precisarmos com o fluxo retornado, veja os exemplos:

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

public class SampleMainIterable {

    public static void main(String[] args) {
        Iterable<Integer> numbers = Arrays.asList(100, 10, 1, 56, 180);

        System.out.println( String.format("Itens: %s", getStream(numbers).count()) );
        System.out.println( String.format("Ordenada: %s", getStream(numbers).findFirst().get()) );
        System.out.println( String.format("Maxímo: %s", getStream(numbers).max(Comparator.comparing(Integer::valueOf)).get()) );
    }


    private static Stream<Integer> getStream(Iterable<Integer> numbers) {
        return StreamSupport.stream(numbers.spliterator(), false);
    }

}

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar