stream是java8中處理集合的關(guān)鍵抽象概念,它可以指定您希望對(duì)集合進(jìn)行的操作,可以執(zhí)行非常復(fù)雜的查找、過(guò)濾和映射數(shù)據(jù)等操作。使用stream api對(duì)集合數(shù)據(jù)進(jìn)行操作,就類似于使用sql執(zhí)行的數(shù)據(jù)庫(kù)查詢。
stream 的三個(gè)操作步驟
1、創(chuàng)建stream.
得到stream流的第一種方式:
可以通過(guò)collection系列集合提供提供的stream()或parallelstream
1
2
3
4
5
6
7
8
9
10
11
|
@test public void test1() { //可以通過(guò)collection系列集合提供提供的stream()或parallelstream list<string> list = new arraylist<>(); stream<string> stream = list.stream(); } |
通過(guò)arrays中的靜態(tài)方法stream()方法得到數(shù)組流
//通過(guò)arrays中的靜態(tài)方法stream()方法得到數(shù)組流
1
2
3
|
dept[] depts = new dept[ 10 ]; stream<dept> deptstream = arrays.stream(depts); |
通過(guò)stream類中的靜態(tài)方法of()stream.of("aa","bb","cc");
創(chuàng)建無(wú)限流 //迭代 stream<integer> integerstream = stream.iterate(0,(x) -> x+2);
2、中間操作
//創(chuàng)建無(wú)限流 //迭代 stream<integer> integerstream = stream.iterate(0,(x) -> x+2); //中間操作 integerstream.limit(10).foreach(system.out::println);
6、
查看運(yùn)行結(jié)果
3、終止操作
1
2
3
4
5
6
7
8
9
|
//創(chuàng)建無(wú)限流 //迭代 stream<integer> integerstream = stream.iterate( 0 ,(x) -> x+ 2 ); //終止操作 integerstream.foreach(system.out::println); |
查看運(yùn)行結(jié)果