什么是Stream流?
类似于工厂流水线,对集合或者数组进行一套操作。
Stream流有什么用?
结合了Lambda表达式,简化集合、数组的操作。
Stream怎么用?
1.先得到一条流水线,并把数据放上去
2.利用Stream流中的API对数据进行各种操作
中间方法:中间方法使用后还可以继续调用其他方式使用。
终结方法:在最末尾使用的方法,使用后不能再调用其他方法。
Stream流使用步骤
不同的数据类型使用Stream流使用的方法不一样;
单列集合
先创建一个集合list,并往集合里放入一些字符串。使用Stream流就直接调用stream方法即可,然后通过链式编程调用中间方法或者中介方法。上面这个forEach是个终结方法,方法体是lambda表达式——打印集合中的每个数据。
双列集合
双列集合不可以直接使用Stream流,不过可以把双列集合中的每一个键值对对象放入一个单列集合中再去使用Stream流。
上面创建了一个双列集合hm,并往里面添加键值对。可以调用keySet()或者entrySet()将它放进另外一个单列集合中,再通过这个单列集合调用stream()方法将数据放在流水线上。
数组
先创建一个数组,再调用Arrays的stream()方法,参数填入数组名即可。
一堆零散的数据
对于一堆相同类型的数据,直接使用Stream中的静态方法of()即可。
中间方法
终结方法
toArray方法:
lambda表达式:
collect方法:
首先创建一个集合,里面添加数据。
把性别男的过滤出来,放在List/Set/Map里,List和Set直接调用collect()方法,参数为Collectors.toList或者Collectors.toSet。但如果要收集在Map集合中,参数则为两个,分别制定键和值的规则,如上键的规则为姓名,值的规则为年龄。