Java中收集Stream流的方式

收集Stream流

Stream流的收集操作:

收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或者数组中去。

Stream流:方便操作集合/数组的手段。

集合/数组:才是开发中的目的。

Stream流的收集方法:

名称 说明
collect(Collector collector) 开始收集Stream流,指定收集器

Collectors工具类提供了具体的收集方式:

名称 说明
Collector toList() 把元素收集到List集合中
Collector toSet() 把元素收集到Set集合中
Collector toMap(Function keyMapper , Function valueMapper) 把元素收集到Map集合中

示例代码:

收集Stream流到一个新的List集合中

public static void main(String[] args) {
    
    
    List<String> names = new ArrayList<>();
    Collections.addAll(names,"张无忌", "赵敏", "周芷若", "张三丰", "张三");

    // 过滤姓张的名字
    Stream<String> s1 = names.stream().filter(s -> s.startsWith("张"));
    // 将过滤后的流放入一个新集合中
    List<String> newNames = s1.collect(Collectors.toList());
    System.out.println(newNames); // [张无忌, 张三丰, 张三]
}

收集Stream流到一个新的Set集合中

 public static void main(String[] args) {
    
    
    List<String> names = new ArrayList<>();
    Collections.addAll(names,"张无忌", "赵敏", "周芷若", "张三丰", "张三");

    // 过滤姓张的名字
    Stream<String> s1 = names.stream().filter(s -> s.startsWith("张"));
    // 将过滤后的流放入一个新集合中
    Set<String> newNames = s1.collect(Collectors.toSet());
    System.out.println(newNames); // [张三, 张三丰, 张无忌]
}

收集Stream流到一个新的数组中

public static void main(String[] args) {
    
    
    List<String> names = new ArrayList<>();
    Collections.addAll(names,"张无忌", "赵敏", "周芷若", "张三丰", "张三");

    // 过滤姓张的名字
    Stream<String> s1 = names.stream().filter(s -> s.startsWith("张"));
    // 将过滤后的流放入一个新数组中
    Object[] newNames = s1.toArray();
    System.out.println(Arrays.toString(newNames)); // [张无忌, 张三丰, 张三]
}

小结: 收集Stream流的作用

Stream流只是操作集合/数组的手段

操作的结果数据最终要恢复到集合或者数组中去。

猜你喜欢

转载自blog.csdn.net/m0_71485750/article/details/127520353