Java之Stream流的收集
收集Stream流的含义:
就是把Stream流操作后的结果数据转到集合或者数组中去。
Stream流只是方便操作集合/数组的手段。
集合/数组才是开发中的目的。
Stream流的收集方法
名称 | 说明 |
---|---|
R collect(Collector collector) | 开始收集Stream流,指定收集器 |
Collectors工具类提供了具体的收集方式
名称 | 说明 |
---|---|
public static <T> Collector toList() | 把元素收集到List集合中 |
public statci <T> Collector toSet() | 把元素收集到Set集合中 |
public static Collector toMap(Function ketMapper,Function valueMapper) | 把元素收集到Map集合中 |
代码实现
public class StreamDemo05 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
Collections.addAll(list , "张文君","张文俊","周文君","周三","李达","张俊");
Stream<String> s1 = list.stream().filter(s->s.startsWith("张"));
List<String> zhangList = s1.collect(Collectors.toList());
// List<String> zhangList = s1.toList();//从jdk16开始支持,得到不可变集合
System.out.println(zhangList);
//注意:流只能使用一次。
Stream<String> s2= list.stream().filter(s->s.startsWith("张"));
Set<String> zhangSet = s2.collect(Collectors.toSet());
System.out.println(zhangSet);
//收集成数组
Stream<String> s3= list.stream().filter(s->s.startsWith("张"));
// Object[] arrs = s3.toArray();
// String[] arrs = s3.toArray(new IntFunction<String[]>() {
// @Override
// public String[] apply(int value) {
// return new String[4];
// }
// });
String[] arrs = s3.toArray(String[]::new);
System.out.println("数组Arrays内容:"+ Arrays.toString(arrs));
}
}
标签:Java,Stream,收集,list,集合,public,String
From: https://www.cnblogs.com/liandaozhanshi/p/17591371.html