对所有的元素应用一个函数,并将结果放入一个新的 Traversable对象中

解决方法:

1、map()

2、flatMap()

 

package main

object Test {

  def main(args: Array[String]): Unit = {

    val t = Traversable(1 to 5: _*);

    val result = t.map( x => x + 5 ); //每个元素加5,返回新元素
    println(result);
    //List(6, 7, 8, 9, 10)

    val result2 = t.map( x => x * x );
    println(result2);
    //List(1, 4, 9, 16, 25)

  }
}

 

package main

object Test {

  def main(args: Array[String]): Unit = {

    val words = Traversable("Hadoop", "Hive", "Sqoop");

    val r1 = words.map(x => x.toUpperCase); //每个元素加转换成大写
    println(r1);
    //List(HADOOP, HIVE, SQOOP)


    val r2 = words.flatMap(x => x.toList);
    println(r2);
    //List(H, a, d, o, o, p, H, i, v, e, S, q, o, o, p)


    val r3 = words.flatMap(x => x.toUpperCase);
    println(r3);
    //List(H, A, D, O, O, P, H, I, V, E, S, Q, O, O, P)

  }
}

 

讨论:

flatMap() 可以看作是 map + flatten 的联合方法。

 

posted @ 2019-07-20 18:21  茗::流  阅读(69)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。