Java8-Stream-建立流

友情提示:若是要看懂Stream,得先把Lambda先搞明白,能夠去Java8-Lambda表達式瞧一瞧java

什麼是Stream

    Stream 是 Java8 中處理集合的關鍵抽象概念,它能夠指定你但願對集合進行的操做,能夠執行很是複雜的查找、過濾和映射數據等操做。使用Stream API 對集合數據進行操做,就相似於使用 SQL 執行的數據庫查詢。也能夠使用 Stream API 來並行執行操做。簡而言之,Stream API 提供了一種高效且易於使用的處理數據的方式。數據庫

    注意先有集合再有流,流是去操做集合的,「集合講的是數據,流講的是計算!」
    三個注意的點:spa

    Stream 它不會存儲元素。
    Stream 不會改變源對象。相反,他們會返回一個持有結果的新Stream。
    Stream 操做是延遲執行的。這意味着他們會等到須要結果的時候才執行.net

使用流舉例

    第一步建立流code

    第二步對數據進行中間操做對象

    第三步終止操做,好比數據展示,存放等blog

package com.jv.java8.stream;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

import org.junit.Test;

import com.jv.bean.Cust;

public class TestStream {
	
	//建立流,並作簡單的演示
	@Test
	public void test1() {
		//1.經過集合的實例方法stream()或者parallelStream()建立
		List<String> l = new ArrayList();
		l.add("重慶真美");
		l.add("火鍋好吃");
		l.add("妹子好看");
		Stream<String> sm1 = l.stream();
		sm1.forEach(System.out::println);
		
		//2.經過Arrays建立
		Cust[] cs = new Cust[10];
		Stream<Cust> sm2 = Arrays.stream(cs);
		
		//3.建立無限流
		Stream<Integer> sm3 = Stream.iterate(0, (x)->x+3);
		sm3.limit(15).forEach(System.out::println);
		
		//4.使用Stream.of靜態方法建立
		Stream<String> sm4 = Stream.of("合川桃片","江津老白乾","豐都鬼城","李子壩輕軌站");
		sm4.forEach(System.out::println);
	}
	
}

使用Arrays.stream和Stream.of建立流還有不少重載的方法,老鐵們能夠本身去多看看,好比Arrays.stream有一個帶泛型的方法,表示能夠存聽任何對象get

注:中間操做是延遲執行的,只有當終止操做出現時,中間操做纔會執行。it

中間操做須要單獨開篇進行詳述,敬請期待。。。java8

相關文章
相關標籤/搜索