zoukankan      html  css  js  c++  java
  • [java]Stream API——map和flatMap的区别

    map方法

       map的含义为映射。是指对于Stream中包含的每一个元素使用给定的转换函数进行转换。

       map传入的Lambda表达式必须是Function实例,参数可以为任意类型,而其返回值也是任性类型,javac会根据实际情景自行推断。

    flatMap方法

       flatMap的含义为平铺映射。flatMap方法与map方法类似,都是将原Stream中的每一个元素通过转换函数转换。不同的是,flatMap是对结果进行平铺。

       flatMap传入的Lambda表达式必须是Function实例,参数可以为任意类型,而其返回值类型必须是一个Stream。

    示例

    public static Stream<Character> characterStream(String s){
            List<Character> result = new ArrayList<>();
            for (char c : s.toCharArray())
                result.add(c);
            return result.stream();
        }
        
    String w = "your name";
    Stream
    <Stream<Character>> mapResult = words.map(w -> characterStream(w)); Stream<Character> flatMapResult = words.flatMap(w -> characterStream(w));

    map的结果mapResult:[ ...['y', 'o', 'u', 'r'], ['n', 'a', 'm', 'e']]

    faltMap的结果flatMapResult:['y', 'o', 'u', 'r', 'n', 'a', 'm', 'e']

  • 相关阅读:
    MySQL详细安装(windows)
    深入理解java虚拟机
    java语言实现机制
    java基本类型的长度
    关于SQLite数据库 字段 DateTime 类型
    "初识".Net Winfom
    Linux Shell脚本编程while语句
    mysql主从搭建
    oracle dg状态检查及相关命令
    Oracle 11.2.0.4单实例打补丁
  • 原文地址:https://www.cnblogs.com/vickylinj/p/9489230.html
Copyright © 2011-2022 走看看