目标:收集Stream流
引入
Stream的作用是:把集合转换成一根传送带,借用Stream流的强大功能进行的操作。
但是实际开发中数据最终的形式还是应该是集合,最终Stream流操作完毕以后还是要转换成集合。
这就是收集Stream流。
特点
Stream流:手段。
集合:才是目的。
流:只能使用一次。
小结
开发中Stream流用于操作集合,最终还是要把结果数据转换回集合或者数组。
public class StreamDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰");
list.add("张三丰");
// 需求:姓张。
Stream<String> s1 = list.stream().filter(s -> s.startsWith("张"));
// 1.把流转回成List集合
List<String> list1 = s1.collect(Collectors.toList());
System.out.println(list1);
// 2.把流转回成Set集合
Stream<String> s2 = list.stream().filter(s -> s.startsWith("张"));
Set<String> sets = s2.collect(Collectors.toSet());
System.out.println(sets);
// 3.把流转成数组
Stream<String> s3 = list.stream().filter(s -> s.startsWith("张"));
//Object[] arrs = s3.toArray();
String[] arrs = s3.toArray(String[]::new);// 指定转的数组类型!
System.out.println("数组:"+ Arrays.toString(arrs));
}
}