流(Stream)的基本介绍
Stream的操作步骤
创建Stream 一个数据源(如:集合、数组),获取一个流
中间操作 一个中间操作链,对数据源的数据进行处理
终止操作(终端操作) 一个终止操作,执行中间操作链,并产生结果
创建Stream
public class Demo01 {
List< Person> people = Arrays. asList (
new Person ( "A" , 24 ) ,
new Person ( "B" , 44 ) ,
new Person ( "E" , 53 ) ,
new Person ( "C" , 53 ) ,
new Person ( "D" , 19 ) ) ;
@Test
public void test01 ( ) {
ArrayList< Object> list = new ArrayList < > ( ) ;
Stream< Object> stream = list. stream ( ) ;
int arr[ ] = {
1 , 2 , 3 } ;
IntStream stream1 = Arrays. stream ( arr) ;
Stream< String> stream2 = Stream. of ( "aa" , "bb" , "cc" ) ;
Stream< Integer> stream3 = Stream. iterate ( 0 , ( x) - > x + 2 ) ;
stream3. limit ( 10 ) ;
stream3. forEach ( System. out: : println) ;
Stream. generate ( ( ) - > Math. random ( ) ) . limit ( 5 ) . forEach ( System. out: : println) ;
}
}
中间操作
1.筛选与切片
@Test
public void test02 ( ) {
Stream< Person> stream = people. stream ( ) .
filter ( ( e) - > e. age > 30 ) ;
stream. forEach ( System. out: : println) ;
}
@Test
public void test03 ( ) {
people. stream ( )
. filter ( ( e) - > e. age > 20 )
. limit ( 2 )
. forEach ( System. out: : println) ;
}
@Test
public void test04 ( ) {
people. stream ( )
. filter ( ( e) - > e. age > 20 )
. skip ( 2 )
. forEach ( System. out: : println) ;
}
@Test
public void test05 ( ) {
people. stream ( )
. filter ( ( e) - > e. age > 20 )
. skip ( 2 )
. distinct ( )
. forEach ( System. out: : println) ;
}
2.映射
@Test
public