Scala中的flatMap()方法是一种与map()
Scala中的方法相似的方法。
flatMap()方法被用于一个收集变换到根据传递的转换函数的值等。flatMap()服务的主要功能是删除集合元素的内部分组,并将其转换为退化元素的集合。
flatMap()方法是简单地的总和map()和flattern() 。将使用map()方法,然后使用flattern()方法来转换集合。
语法:
collection.flatMap(convFunc)
参数:
convFunc-这是一个转换函数,用于转换集合中的元素。
返回值:
该函数返回与初始函数相同类型的新集合。
例子:
示例1:flatMap()
在字符串序列上使用并进行拼合
// Program to illustrate the working of // flatMap() function object MyObject { def main(args: Array[String]) { val coll1 = List("Scala", "Programming", "Language") print("Initial collection: " + coll1) val coll2 = coll1.flatMap(_.toLowerCase) print("\nMapped collection with function to multiply by 2: " + coll2) } }
输出:
Initial collection: List(Scala, Programming, Language)Mapped collection with function to multiply by 2: List(s, c, a, l, a, p, r, o, g, r, a, m, m, i, n, g, l, a, n, g, u, a, g, e)
说明:
在上面的代码中,我们创建了一个集合coll1,它是一个字符串列表。然后,我们将使用flatMap()方法来转换集合。并且我们使用了_toLowerCase方法,该方法传递给该方法。然后打印新列表。
示例2:举例说明flatMap()
使用seq和平坦化seq的工作方式
// Program to illustrate the working of // flatMap() function object MyObject { def createSeq(a:Int) = Seq(a, a*a, a*a*a); def main(args: Array[String]) { val coll1 = Seq(6, 1, 8, 2, 9, 5) print("Initial collection: " + coll1) val coll2 = coll1.flatMap(createSeq) print("\nMapped collection with function to multiply by 2: " + coll2) } }
输出:
Initial collection: List(6, 1, 8, 2, 9, 5) Mapped collection with function to multiply by 2: List(6, 36, 216, 1, 1, 1, 8, 64, 512, 2, 4, 8, 9, 81, 729, 5, 25, 125)
说明:
在上面的代码中,我们创建了一个列表coll1,该列表为整数,然后使用flatMap()方法对其进行转换。使用的函数获取列表中的每个元素,然后将其转换为数字,其平方和立方的列表。然后flatMap()将其转换并扁平化为列表。然后我们打印了输出。