Stream流的终结方法(一)

1.Stream流的终结方法

2.forEach

对于forEach方法,用来遍历stream流中的所有数据

java 复制代码
package com.njau.d10_my_stream;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.IntFunction;

/**
 * 目标:认识stream流的终结方法
 * void forEach(Consumer action)        遍历
 * long count()                         统计
 * toArray()                            收集流中的数据,放到数组中
 */
public class StreamDemo9 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");

        // void forEach(Consumer action)        遍历      返回值为void,证明其为终结方法
        // Consumer的泛型:表示流中数据的类型
        // accept方法的形参s:依次表示流里面的每一个数据
        // 方法体:对没有个数据的处理操作(打印)
        list.stream().forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        list.stream().forEach(s -> System.out.println(s));
    }
}

3.count

对于count方法,用于统计流中元素的数量

java 复制代码
package com.njau.d10_my_stream;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.IntFunction;

/**
 * 目标:认识stream流的终结方法
 * void forEach(Consumer action)        遍历
 * long count()                         统计
 * toArray()                            收集流中的数据,放到数组中
 */
public class StreamDemo9 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");

        // long count()                         统计
        System.out.println(list.stream().count());
    }
}

4.toArray(将流存储到数组中去,集合->数组)

深入认识toArray(带有数组类型的方法)

1.new IntFunction的泛型类型:具体类型的数组
2.apply的形参:流中数据的个数,要跟数组长度保持一致
3.apply的返回值:具体类型的数组
方法体:就是创建数组

java 复制代码
package com.njau.d10_my_stream;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.IntFunction;

/**
 * 目标:认识stream流的终结方法
 * void forEach(Consumer action)        遍历
 * long count()                         统计
 * toArray()                            收集流中的数据,放到数组中
 */
public class StreamDemo9 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");
        // 深入认识toArray(带有数组类型的方法)
        // 1.new IntFunction的泛型类型:具体类型的数组
        // 2.apply的形参:流中数据的个数,要跟数组长度保持一致
        // 3.apply的返回值:具体类型的数组
        // 方法体:就是创建数组

        // toArray方法参数的作用:创建一个String类型的数组
        // toArray方法的底层:将流中的数据依次存放到数组中
        // toArray方法的返回值:返回已经存储进去流中数据的数组
        /*
        String[] arr2 = list.stream().toArray(new IntFunction<String[]>() {
            @Override
            public String[] apply(int value) {
                return new String[value];
            }
        });
        */
        String[] arr2 = list.stream().toArray(value -> new String[value]);
        System.out.println(Arrays.toString(arr2));
    }
}
相关推荐
loss_rose7779 分钟前
【场景题】秒杀系统设计以及解决方案
java
java_heartLake19 分钟前
设计模式之解释器模式
java·设计模式·解释器模式
风清扬_jd35 分钟前
Chromium 硬件加速开关c++
java·前端·c++
哎呦没35 分钟前
Spring Boot框架在医院管理中的应用
java·spring boot·后端
苓诣35 分钟前
Java Vector类
java·数据结构
络71 小时前
Spring14——案例:利用AOP环绕通知计算业务层接口执行效率
java·后端·spring·mybatis·aop
天上掉下来个程小白1 小时前
分层解耦-02.分层解耦(IOC-DI引入)
java·springboot·依赖注入·控制反转
极客先躯2 小时前
高级java每日一道面试题-2024年10月2日-分布式篇-什么是FLP 不可能性定理?
java·分布式·分布式篇·容错策略·不可能性定理·补偿机制
2401_857622662 小时前
SpringBoot精华:打造高效美容院管理系统
java·前端·spring boot
克鲁德战士2 小时前
【Nacos架构 & 原理】内核设计之Nacos一致性协议
java·架构