美文网首页
Scala中的Map、Tuple、Zip

Scala中的Map、Tuple、Zip

作者: 田真的架构人生 | 来源:发表于2017-08-02 21:17 被阅读0次

Map:k,v键值对,跟java里的Map差不多的意思。
定义一个Map有以下几种方式:

val map = Map("book"->10,"gun"->18,"ipad"->1000)  
val scores = scala.collection.mutable.Map("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//可变的Map
val sortedScore = scala.collection.immutable.SortedMap("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//按照key排序

Map增加、删除键值对:

scores += ("R" -> 9)//添加元素
scores -= "Hadoop"//删除元素

Map的取值:

val hadoopScore = scores.getOrElse("Hadoop", 0)

Map的遍历:

for((k,v) <- map) yield (k,v * 0.9)

如果只想取key,可以使用如下方式:

for((k,_) <- map){ //placeholder
     println("Key is " + k)
}

Tuple:scala里比较特殊的一种数据结构,它允许不同类型的数据放在一起,形成一个元组。
譬如,有些方法一次返回好几个类型不同的value。再如,Map的一个(k, v)也就是一个Tuple
Tuple的定义:

val tuple =(1,2,3.14,"Rocky","Spark","Flink")

Tuple的取值:

val third = tuple._1//和数组不同的是,下标从1开始。还能tuple _3这种方式访问,不过不建议

Tuple其它操作:

val (first,second,thirda,fourth,fifth,sixth) = tuple//将tuple赋值给另一个tuple
val (f, s, _, _, _,_) = tuple//对于不想要的值,可以使用占位符  
"Rocky Spark".partition(_.isUpper)//partition返回一个tuple:(String, String) = (RS,ocky park)

Zip:讲两个Array的数据合并起来,形成一个大Array,新的Array元素是一个个的Tuple

val symbols = Array("[", "-", "]")
val counts = Array(2,5,2)
val pairs = symbols.zip(counts)

结果:Array[(String, Int)] = Array(([,2), (-,5), (],2))

for ((x,y) <- pairs) print(x*y)

结果:[[-----]]

相关文章

  • Scala中的Map、Tuple、Zip

    Map:k,v键值对,跟java里的Map差不多的意思。定义一个Map有以下几种方式: Map增加、删除键值对: ...

  • Scala 简明速学05 集合-Tuple

    Scala 简明速学05 集合-Tuple Tuple Scala中Tuple为单个键值对。

  • Scala 简明速学04 集合-Map

    Scala 简明速学04 集合-Map Map Scala中Map提供键值对集合。 Map的初始化 Scala中的...

  • Scala中的map与collect

    在Scala中,当我需要对集合的元素进行转换时,自然而然会使用到map方法。而当我们在对tuple类型的集合或者针...

  • Scala语法

    转摘地址: Scala中的Map使用例子Scala 技术笔记之 Option Some None Map 不可变M...

  • Scala使用fastJson整理

    内容整理 字符串Map => JSONObject => Scala Map Scala Map => JSONO...

  • 第3课 Scala中Array、Map、Tuple实战

    Array //声明变量arr为Array整数类型的数组,包含5个元素。 scala>valarr=newArra...

  • Scala解惑

    1. map中获取index 2. List转Map, List[Tuple3] to Map[String,St...

  • Scala的Tuple拉链操作、Java Map与Scala M

    Tuple拉链操作指的就是zip操作 zip操作:指的就是数组的zip操作。zip方法是Array类的方法,就是将...

  • scala之map

    基本介绍 scala中的Map和java类似,也是一个散列表,它存储的内容也是键值对,scala中不可变的map是...

网友评论

      本文标题:Scala中的Map、Tuple、Zip

      本文链接:https://www.haomeiwen.com/subject/slnylxtx.html