Java之Stream流的收集

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));
     }
 }
 
posted @ 2023-07-30 13:57  镰刀战士  阅读(39)  评论(0)    收藏  举报