Primeira experiência de fluxo
O stream é uma característica importante das coleções de operações no Java 8. Vamos primeiro olhar como o fluxo é definido em Java:
"Uma sequência de elementos que suportam operações sequenciais e paralelas agregadas".
Vamos interpretar a frase acima:
1. O fluxo é uma coleção de elementos, que faz o fluxo parecer iterador;
2. Pode suportar as operações de agregar o fluxo original em sequência e paralelo.
Existem muitas maneiras de criar fluxo, e existem várias outras maneiras de criar uma coleção, além das mais comuns.
Lista para transmitir
A lista herda da interface de coleta e a coleção fornece o método Stream ().
List <Teger> list = lists.newArrayList (1, 2, 3); fluxo <TEGER> stream = list.stream ();
Array para transmitir
Para matrizes, as matrizes fornecem o método Stream ().
String [] arr = new String [] {"A", "B", "C"}; Stream <String> Stream = Arrays.stream (arr); Mapa para transmitir
O mapa não é uma sequência, não uma coleção, e não há como convertê -la diretamente em stream (). Mas o entradas () está definido e pode ser convertido.
Mapa <string, object> map = maps.newhashmap (); fluxo <entrada <string, objeto >> stream = map.entrySet (). Stream ();
Criar fluxo diretamente
O Stream também fornece uma API para gerar diretamente um fluxo, que pode ser compreendido como uma lista. Porque o interno é implementado por uma matriz.
Stream <Integer> integertream = stream.of (1, 2, 3);
Leia o fluxo do arquivo
Aqueles que usaram o Linux admirarão os símbolos do tubo na linha de comando, e um símbolo de tubo pode ser processado continuamente. Funções semelhantes podem ser implementadas ao ler arquivos no Java.
LONCEDORES DE LONGEIROS = 0; Try (Stream <String> lines = files.Lines (PATHS.GET ("Data.txt"), charset.defaultcharset ())) {uniquewords = lines.flatmap (l -> Arrays.Stream (l.split ("))) .distint (). /); Gerar fluxo infinito através de funções
O fluxo fornece iterado para gerar uma sequência infinita, uma sequência infinita com base no valor inicial. Você pode usar o Lambda para definir as regras de geração de sequência, como adicionar 2 de cada vez.
Stream.iterate (0, n -> n + 2) .limit (10) .foreach (System.out :: println);
Por exemplo, sequência de Fibonacci
Stream.iterate (novo int [] {0, 1}, t -> new int [] {t [1], t [0] + t [1]}) .limit (20) .map (t -> t [0]) .ForEach (System.out :: println); O fluxo também fornece outro método de geração para gerar seqüências. Recebe uma função de sequência gerada especificada pelo usuário Intsupplier.
Intsupplier fib = new intsupplier () {private int anterior = 0; private int atual = 1; @Override public int getasint () {int OldPrevious = this.previous; int nextValue = this.previous + this.current; this.previous = this.Current; this.Current = NextValue; Retornar OldPrevious; }}; Intstream.GeReRe (fib) .limit (10) .foreach (System.out :: println);Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.