一、应用场景示例

原始代码:


使用Stream流:

二、Stream流的思想
可以理解为是流水线操作。
2-1、Stream流的作用
结合了Lambda表达式 ,简化对集合、数组的操作。
2-2、Stream流的使用步骤

三、Stream流的使用步骤
3-1、获取一条Sream流

①、单列集合获取Stream流

②、双列集合获取Stream流

③、数组获取Stream流

④、一堆零散数据获取Stream流
要求:数据类型相同!

3-2、Stream流的中间方法
1、filter方法:过滤

【注意】:原来的Stream流只能使用一次!
2、limit方法:获取前几个元素
3、skip:跳过前几个元素

4、distinct方法:去重

【注意】:
String类已经重写了hashCode和equals方法!
自定义类,要手动重写hashCode和equals方法。
5、concat方法:合并两个流
【注意】:
a, b两个流类型要相同,否则,合并的结果是他们的父类!

6、map方法:转换流中的数据类型
3-3、Stream流的终结方法

1、toArray方法:收集到数组中

使用lambda表达式:
java
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三丰");
list.add("照明");
list.add("张丰");
list.add("张三");
list.add("张二丰");
list.add("张一丰");
// 方法一
Object[] arr1 = list.stream().toArray();
System.out.println(Arrays.toString(arr1));
// 方法二
String[] arr2 = list.stream().toArray(new IntFunction<String[]>() {
@Override
public String[] apply(int value) {
return new String[value];
}
});
System.out.println(Arrays.toString(arr2));
// 方法三
list.stream().toArray(value -> new String[value]);
}
2、collect方法:收集到集合中
①、收集到list、set集合中

②、收集到map集合中
【注意】:key不能重复!


使用lambda表达式:
