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));
    }
}
相关推荐
idolao1 小时前
Oligo 7.60 安装教程:引物设计+Java 环境配置
java·开发语言
做个文艺程序员4 小时前
第04篇:K8s 弹性伸缩实战:HPA、VPA、KEDA——Java SaaS 应对流量洪峰的秘密武器
java·容器·kubernetes·弹性伸缩·自动扩容·ai 推理伸缩
石山代码8 小时前
ArrayList / HashMap / ConcurrentHashMap
java·开发语言
jingshaoqi_ccc9 小时前
windows 10系统下QT的安装及在Visual studio中的扩展安装
windows·qt·visual studio
AskHarries9 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
daidaidaiyu10 小时前
ThingsBoard 规则链系统源码分析和自定义定时器
java
小毛驴85010 小时前
spring-boot-maven-plugin,maven-compiler-plugin 功能对比
java·python·maven
csdn_aspnet11 小时前
Java 霍尔分区算法(Hoare‘s Partition Algorithm)
java·开发语言·算法
霸道流氓气质11 小时前
通义灵码 IDEA 插件完全使用指南
java·ide·intellij-idea
诸葛务农11 小时前
道路行驶条件下电动汽车永磁电机的有效使用寿命及永磁体的失效和回收再利用(下)
java·开发语言·算法