首页 > 编程语言 >java流

java流

时间:2023-04-02 19:13:08浏览次数:38  
标签:map flatMap java 函数 一个 元素 List

流运算

map 和 flatMap

map 函数接收一个函数作为参数,将该函数应用于流中的每个元素,并返回一个新的流。例如,我们可以通过 map 函数将流中的每个元素都加上 1:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
List<Integer> incrementedNumbers = numbers.stream()
                                          .map(n -> n + 1)
                                          .collect(Collectors.toList());

得到结果:

[2, 3, 4, 5]

flatMap 函数也接收一个函数作为参数,该函数将流中的每个元素映射为一个流,最终将这些流合并为一个新的流。例如,我们可以通过 flatMap 函数将一个字符串列表转化为一个字符流:

List<String> words = Arrays.asList("hello", "world");
List<Character> chars = words.stream()
                             .flatMap(str -> str.chars().mapToObj(c -> (char)c))
                             .collect(Collectors.toList());

得到结果:

[h, e, l, l, o, w, o, r, l, d]

区别:

  • map 和 flatMap 的主要区别在于函数的返回值类型。map 函数的返回值类型可以是任意类型,而 flatMap 函数的返回值类型必须是一个流(Stream)。
  • map 函数将每个元素都映射为一个新的元素,最终得到一个新的流。而 flatMap 函数将每个元素映射为一个流,并将这些流合并为一个新的流。因此,flatMap 可以用于扁平化嵌套的集合结构。

标签:map,flatMap,java,函数,一个,元素,List
From: https://www.cnblogs.com/shmilyt/p/17281026.html

相关文章

  • java -- static, 内部类, 权限, 参数传递
    static关键字static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个这个类的某个对象。static修饰的成员被多个对象共享。static修饰的成员属于类,但是会影响每一个对象。被static修饰的成员又叫类成员,不叫对象的成员。static特点被static修饰的成员变量属于类,不......
  • 有关哈希表简单的散列函数实现-Java实现
    其实现不难,所以直接贴代码:1packagedataSrtuct;23importjava.util.ArrayList;4importjava.util.LinkedList;56publicclassHashTab{7publicstaticvoidmain(String[]args){8hashTablehashT=newhashTable(10);9......
  • leetcode 394.字符串解码 Java
    394.字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外......
  • Java SPI机制简介
    在JDBC4.0版本之前,使用DriverManager获取Connection对象之前都需要通过代码显式地加载驱动实现类,例如:JDBC4.0之后的版本对此做了改进,我们不再需要显式地加载驱动实现类。这得益于Java中的SPI机制,本节我们就来简单地了解SPI机制。SPI(ServiceProviderInterface)是JDK内置的一......
  • java数组的创建和使用
    声明数组必须先声明后使用,数组的声明有两种方法:1.C语言风格声明:dataTypearrayRefVar[];2.Java风格声明:dataType[]arrayRefVar;一般推荐使用第二种Java风格的声明方式。创建数组声明的数组并不具备物理空间,需要使用new操作符来创建数组,为其分配内存空间:dataType[......
  • mybatis OGNL表达式,xml查询中使用java的变量值
    1、参考struts2ongl访问静态变量与访问枚举Ognl表达式基本原理和使用方法2、java类packageorg.jeecg.mgt.cms.constant;publicclassEAd{publicstaticfinalIntegershow1=1;publicstaticfinalclassAA{publicstaticfinalIntegershow2......
  • leetcode 739.每日的温度 Java
    739.每日的温度给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。示例1:输入:temperatures=[73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,......
  • nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http
    一、问题背景利用springboot上传大文件二、报错截图如下2023-04-0216:04:18,681ERROR[http-nio-63050-exec-6][GlobalExceptionHandler.java:58]-系统异常:Maximumuploadsizeexceeded;nestedexceptionisjava.lang.IllegalStateException:org.apache.tomcat.util.h......
  • java——spring boot集成kafka——kafka线上问题优化——如何解决消息积压问题
          ......
  • leetcode 20. 有效的括号 Java
    给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例1:输入:s="()"输出:true示例2:输入:s="()[]{}"输出:true......