当前位置: 首页 > article >正文

Stream流的终结方法(一)

1.Stream流的终结方法

2.forEach 

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

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方法,用于统计流中元素的数量

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的返回值:具体类型的数组
       方法体:就是创建数组

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));
    }
}


http://www.kler.cn/news/335190.html

相关文章:

  • 【小沐学GIS】QGIS导入导出OpenStreetMap数据(QuickMapServices、OSM)
  • 通信工程学习:什么是IGMP因特网组管理协议
  • 余承东直播论道智能驾驶:激光雷达不可或缺,华为ADS 3.0引领安全创新
  • 【2023工业3D异常检测文献】M3DM: 基于混合融合的多模态工业异常检测方法
  • MySQL事务日志—redo日志介绍
  • SQL自用小结
  • Redis实现每日签到(大数据量)
  • EXCEL图片链接快速批量转成图片
  • Go基础学习09-多协程资源竞争、sync.Mutex、sync.Cond、chan在多协程对共享变量的资源竞争中的使用
  • C程序设计——简单说说编程风格0
  • 基于 STM32F407 的 SPI Flash下载算法
  • 基于微信小程序医院应急设备管理系统(源码+定制+解答)
  • 谷歌地图 | 3D 地图新功能:开发更简单,体验更丰富
  • C++ 语言特性29 - 协程介绍
  • 每日一刷——9.26——ACM训练题——Fibonacci Again
  • 吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
  • 暴力数据结构——AVL树
  • 【漏洞复现】泛微OA E-Office /E-mobile/App/init.php 任意文件上传漏洞
  • 云栖大会观察:云计算第三次浪潮下的暗流涌动
  • 智能家居有哪些产品?生活中常见的人工智能有哪些?