首页 > 其他分享 >Stream流的特点_只能使用一次与Stream流中的常用方法_map

Stream流的特点_只能使用一次与Stream流中的常用方法_map

时间:2022-10-12 09:12:07浏览次数:34  
标签:Function map Stream stream 流中 方法

Stream流的特点_只能使用一次

Stream流属于管道流,只能被消费(使用)一次
第一个Stream流调用完毕方法,数据就会流转到下一个Stream上
而这时第一个Stream流已经使用完毕,就会关闭了
所以第一个Stream流就不能再调用方法了
IllegalStateException: stream has already been operated upon or closed
(IllegalStateException:流已经被操作或关闭)

 

当瓶子走到下一个步骤的时候后面的流就会关闭

所以Stream流只能使用一次

 

 

 

 

Stream流中的常用方法_map

map:可以叫映射或者转换

如果需要将流中的元素映射到另一个流中,可以使用map方法

<R> Stream<R> map(Function<? super T,? extends R> mapper);

该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流

 

复制Function接口

此前我们已经学习过java.util.stream.Function函数式接口,其中唯一的抽象方法为︰ Function中的抽象方法:

 R apply(T t);

这可以将一种T类型转换成R类型,而这种的动作,就称为映射

map方法的基本使用

package day01.Demo01_Day016;

import java.util.stream.Stream;

/*
    如果需要将流中的元素映射到另一个流中,可以使用map方法

<R> Stream<R> map(Function<? super T,? extends R> mapper);
1
该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流
Function中的抽象方法:
    R apply(T t);
     */
public class Demo04Stream_map {
        public static void main(String[] args) {
            //获取一个String类型的Stream流
            Stream<String> stream = Stream.of("1", "2", "3", "4", "5");
            //使用map方法,把字符串类型的整数,转换(映射)为Integer类型的整数
            Stream<Integer> stream1 = stream.map(s -> Integer.parseInt(s));
            //遍历stream1流
            stream1.forEach(i-> System.out.println(i));

        }


}

 这段代码中,map方法的参数通过方法引用,将字符串类型转换成为了int类型(并自动装箱为Integer类对象)。

标签:Function,map,Stream,stream,流中,方法
From: https://www.cnblogs.com/x3449/p/16779884.html

相关文章

  • Ceph使用---Crush Map进阶
    一、CephCrushMap介绍ceph集群中由mon服务器维护的的五种运行图:Monitormap#监视器运行图OSDmap#OSD运行图PGmap#PG运行图Crushmap#(Controllersrepl......
  • Nmap诸神之眼深度解析
    Nmap诸神之眼深度解析本章内容概括:​ 1.1NMAP简介​ 1.2NMAP基本参数​ 1.3图形界面zenmap的高级使用技巧​ 1.4NMAP绕过防火墙​ 1.5Nmap脚本渗透测试......
  • 用Stream来优化老代码,就是爽
    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读。01流如何简化代码如果有一个需......
  • 使用 Stream API 高逼格 优化 Java 代码
    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读放大招,流如何简化代码如果有一个需求,需......
  • SpringBoot+MyBatis Plus对Map中Date格式转换的处理
    在SpringBoot项目中,如何统一JSON格式化中的日期格式问题现在的关系型数据库例如PostgreSQL/MySQL,都已经对JSON类型提供相当丰富的功能,项目中对于不需要检索但是......
  • mAP定义及相关概念
    mAP定义及相关概念P=>precision,即准确率R=>recall,即召回率PR曲线=>即以precision和recall作为纵、横轴坐标的二维曲线。一般来说,precision和recall......
  • Map.Entry详解及List的流Stream
    Map.Entry详解Map是java中的接口,Map.Entry是Map的一个内部接口。Map提供了一些常用方法,如keySet()、entrySet()等方法。keySet()方法返回值是Map中key值的集合;entrySet(......
  • 【code基础】stream流简化数组的求最大值
    将集合或者数组转化为流,进行求最大值,排序,可以省去for循环,简化代码量Arrays.stream(res).max().getAsInt()可以得到res数组的最大值Arrays.stream(res).sorted().boxed(......
  • Java集合TreeMap红黑树一生只爱一次(三天彻底理解应用TreeMap)
    一、那么为什么需要树呢?仔细想一下TreeSet、TreeMap,为什么要用他们。HashSet速度快,TreeSet则方便排序。HashMap速度快,TreeMap方便排序。同时,在树中查找数据项的速度和在有......
  • HashMap实现原理及源码分析
    哈希表(hashtable)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现......