Java8中地图()方法和flatMap()方法的使用

  介绍

Java8中地图()方法和flatMap()方法的使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>两个方法的背景

这两个方法看起来做着同样的事情,但实际上又有些不一样。看源码部分是这样的

包java.util.stream; 

<强>地图()方法

/* *   * @param & lt; R>新元素类型的流   * @param mapper & lt; a href=https://www.yisu.com/zixun/皃ackage-summary.html #干涉”rel=巴獠縩ofollow”rel="外部nofollow”>互不干扰的,   * /* *   * @param & lt; R>新元素类型的流   * @param mapper & lt; a href=https://www.yisu.com/zixun/皃ackage-summary.html #干涉”rel=巴獠縩ofollow”rel="外部nofollow”>互不干扰的,   * 公共静态void main (String [] args) {   与简单的list" System.out.println(“输出);   List元音=arrays . aslist (“A",“E",“我,“O",“U");   vowels.stream ()。地图(元音→vowel.toLowerCase ())   .forEach(价值→System.out.println(值));   List,haiList=new ArrayList<的在();   haiList.add (“hello");   haiList.add (“hai");   haiList.add (“hehe");   haiList.add (“hi");   System.out.println(“输出的嵌套列表List“);   List,welcomeList=new ArrayList<的在();   welcomeList.add(“你有这次);   welcomeList.add(“不要# 39;t提及你;);   welcomeList.add(“别担心!”);   welcomeList.add(“不是problem");   List比;nestedList=数组。asList (haiList welcomeList);   nestedList.stream ()。地图(列表→{   返回list.stream ()。地图(价值→value.toUpperCase ());   }).forEach(价值→System.out.println(值));   }

<>强输出

输出与简单的列表
  一个
  e
  我
  o
  u
  输出的嵌套列表List
  java.util.stream.ReferencePipeline @3b9a45b3 3美元
  java.util.stream.ReferencePipeline 3美元@7699a589 

<强> flatMap()方法

公共静态void main (String [] args) {
  List,haiList=new ArrayList<的在();
  haiList.add (“hello");
  haiList.add (“hai");
  haiList.add (“hehe");
  haiList.add (“hi");
  System.out.println(“输出的嵌套列表List“);
  List,welcomeList=new ArrayList<的在();
  welcomeList.add(“你有这次);
  welcomeList.add(“不要# 39;t提及你;);
  welcomeList.add(“别担心!”);
  welcomeList.add(“不是problem");
  List比;nestedList=数组。asList (haiList welcomeList);
  nestedList.stream () .flatMap (
  列表→list.stream ())
  . map(价值→value.toUpperCase ())
  .forEach(价值→System.out.println(值));
  }

<>强输出

Java8中地图()方法和flatMap()方法的使用