scala——5. Map用法

将函数映射到集合

任何一种函数式语言中,都有map函数与faltMap这两个函数

map函数的用法,顾名思义,将一个函数传入map中,然后利用传入的这个函数,将集合中的每个元素处理,并将处理后的结果返回。

而flatMap与map唯一不一样的地方就是传入的函数在处理完后返回值必须是List,其实这也不难理解,既然是flatMap,那除了map以外必然还有flat的操作,所以需要返回值是List才能执行flat这一步。

scala> val nums=List(1,2,3,4)

nums: List[Int] = List(1, 2, 3, 4)

scala> nums.map(x=>2+x)

res24: List[Int] = List(3, 4, 5, 6)

scala> nums.map(_+1)

res25: List[Int] = List(2, 3, 4, 5)

scala>

1

2

3

4

5

6

7

8

9

10

scala> val data = List("Hadoop","Java","Spark")

data: List[String] = List(Hadoop, Java, Spark)

scala> println(data.flatMap(_.toList))

List(H, a, d, o, o, p, J, a, v, a, S, p, a, r, k)

scala>

Scala映射(Map)是一组键/值对的对象。 任何值都可以根据键来进行检索。键在映射中是唯一的,但值不一定是唯一的。映射也称为哈希表。映射有两种,不可变的和可变的。可变对象和不可变对象之间的区别在于,当对象不可变时,对象本身无法更改。

默认情况下,Scala使用不可变映射(Map)。如果要使用可变集合(Set),则必须明确导入scala.collection.mutable.Map类。如果想同时使用可变的和不可变映射(Map),那么可以继续引用不可变映射(Map),但是可以将mutable集合引用mutable.Map。

scala> import scala.collection.mutable.Map

import scala.collection.mutable.Map

scala> var map = Map(1 -> "a", 2 -> "b", 3 -> "c")

map: scala.collection.mutable.Map[Int,String] = Map(2 -> b, 1 -> a, 3 -> c)

scala> println(map.keys)

Set(2, 1, 3)

scala> println(map.values)

HashMap(b, a, c)

scala> println(map.isEmpty)

false

scala> map += (4 -> "d")

res12: scala.collection.mutable.Map[Int,String] = Map(2 -> b, 4 -> d, 1 -> a, 3 -> c)

scala> map.foreach(value => print(value + " "))

(2,b) (4,d) (1,a) (3,c)

scala>

猜你喜欢

转载自blog.csdn.net/weixin_42490528/article/details/87481058
今日推荐