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));
    }
}
相关推荐
HEJOO92 小时前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧2 小时前
Java:no content to map due to end of input
java·开发语言
阿维的博客日记2 小时前
Example 类全场景实战指南
java·mybatis
两点王爷2 小时前
SpringBoot 项目集成 GeoServer 源码,实现地图服务发布
java·spring boot·后端
Javatutouhouduan2 小时前
Java如何速通性能优化难题?
java·java面试·jvm调优·后端开发·java程序员·java八股文·java性能优化
lemon_sjdk2 小时前
DOM 节点
java·前端·javascript
leoZ2313 小时前
2026-09-09-springboot-cloud-deploy-pitfalls
java·前端·javascript·vue.js·人工智能·spring boot·后端
驭渊的小故事4 小时前
多线程02
java·开发语言·jvm
随遇而安zx4 小时前
【多线程】---实战:CompletableFuture编排
java·多线程·并发
Wang's Blog4 小时前
Java框架快速入门: Spring Security+OAuth2之HTTP请求结构与认证基础
java·spring·http