Scala--映射和元组

一、构造映射

  val scores = Map("Jim"->10, ("Tom",20), "Sam"->44) //key->value, (key,value)两种方式表示, 不可变映射,
  val s = scala.collection.mutable.Map("Jim"->10, ("Tom",20), "Sam"->44)//可变映射
  val s1 = new scala.collection.mutable.HashMap[String, Int] //空的Map

  //scores.+=(("Lily"->10))  //不可变映射,map中不能新增元素
  s.+=(("Lily"->10))
  s1.+=(("Jim"->10))

  println(scores)
  println(s)
  println(s1)

结果:

Map(Jim -> 10, Tom -> 20, Sam -> 44)
Map(Jim -> 10, Tom -> 20, Lily -> 10, Sam -> 44)
Map(Jim -> 10)

二、获取映射中的值

  val scores = Map("Jim"->10, ("Tom",20), "Sam"->44)

  val score1 = scores("Lily")  //直接通过()获取里面的值
  val score2 = if(scores.contains("Lily")) scores("Lily") else 0 //判断是否存在,然后再取值
  val score3 = scores.getOrElse("Lily",0) //通过getOrElse方法实现,不存在给默认值

  println(score1)
  println(score2)
  println(score3)

三、更新映射中的值

可变映射

  val scores = scala.collection.mutable.Map("Jim"->10, ("Tom",20), "Sam"->44)

  scores("Jim") = 11      //更新值
  scores("Fred") = 33     //新增值

  scores += ("Lily"->30, "Li"-> 27) //增加多个
  scores.+=(("Zhao"->44))
  scores -= "Jim"      //删除元素

  println(scores)

结果

Map(Li -> 27, Zhao -> 44, Fred -> 33, Tom -> 20, Lily -> 30, Sam -> 44)

不可变映射  通过声明var变量来重新赋值,完成元素的增、删

  var scores = Map("Jim"->10, ("Tom",20), "Sam"->44)

  scores = scores +("Lily"-> 23)
  scores -= "Jim"

  println(scores)

结果

Map(Tom -> 20, Sam -> 44, Lily -> 23)

四、迭代映射

  var scores = Map("Jim"->10, ("Tom",20), "Sam"->44)

  for((k, v) <- scores) println (k+","+v)
  for(i<- scores.keySet) print(i+" ")
  println()
  for(i<- scores.values) print(i+" ")

结果

Jim,10
Tom,20
Sam,44
Jim Tom Sam
10 20 44 

五、已排序映射

  val sortedScores = scala.collection.immutable.SortedMap("Jim"->10, ("Tom",20), "Sam"->44)
  println(sortedScores)

结果

Map(Jim -> 10, Sam -> 44, Tom -> 20)

六、与Java的互操作

七、元组

  val tuple = (1, 3.14, "Hello")
  println(tuple._1)  //访问第一个元组,下标值不是0而是1
  val(first, second, _) = tuple //获取元组的元素
  println(second)

结果

1
3.14

八、拉链操作

把元组的多个值绑定在一起

  val symbols = Array("<","-",">")
  val counts = Array(2,10,2)
  val pairs = symbols.zip(counts)

  for((k,v)<- pairs) print(k * v)

结果

<<---------->>

参考《快学Scala》

时间: 2024-10-15 07:44:48

Scala--映射和元组的相关文章

Scala映射和元组

映射 import scala.collection.mutable object HelloWorld { def main(args: Array[String]) { val scores = Map("Alice" -> 10, "Bob" -> 33) //构造一个不可变的Map[String,Int] val scores2 = scala.collection.mutable.Map("Alice" -> 10,

Scala学习(四)---映射和元组

映射和元组 摘要: 一个经典的程序员名言是:"如果只能有一种数据结构,那就用哈希表吧".哈希表或者更笼统地说映射,是最灵活多变的数据结构之一.映射是键/值对偶的集合.Scala有一个通用的叫法:元组,即n个对象的聚集,并不一定要相同类型的.对偶不过是一个 n=2的元组,元组对于那种需要将两个或更多值聚集在一起时特别有用.本篇的要点包括: 01. Scala有十分易用的语法来创建.查询和遍历映射. 02. 你需要从可变的和不可变的映射中做出选择. 03. 默认情况下,你得到的是一个哈希映射,不过你

scala学习3 数组相关操作映射和元组

一.定长数组 如果需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[int](10) val s = Array("Hello","world") 二.变长数组:数组缓冲 1. val b = ArrayBuffer[int]() 2.追加元素 b +=(1,2,3,4,5) 3.追加任何集合 b ++= Array(8,13,21) 4.移除最后5个元素 b.trimEnd(5) 5.插入元素 b.insert(

快学Scala习题解答—第四章 映射和元组

4 映射和元组 4.1 设置一个映射,其中包含你想要的一些装备,以及它们的价格.然后构建另一个映射,采用同一组键,但是价格上打9折 映射的简单操作 Shell代码   scala> val map = Map("book"->10,"gun"->18,"ipad"->1000) map: scala.collection.immutable.Map[java.lang.String,Int] = Map(book ->

Scala从入门到精通之四-映射和元组

在Scala中映射之键值对的集合,元组是n个对象的聚集,但是对象的类型不一定相同 本节内容要点 Scala中映射的创建,遍历和查询 如何从可变和不可变映射中做出选择 Scala映射和Java映射见的互操作 Scala中元组的使用 一.构造映射 我们可以这样来构造一个映射: val scores = Map("ysl"->100,"wdd"->90) 上述代码构造一个不可变的Map[String,Int],其值不可以被改变.如果需要创建一个可变的映射,可以

Scala的映射和元组操作

映射和元组操作 构造Map // 构造一个不可变的MAP映射,类似与key -> value这样的组合叫做对偶 val score = Map("Jack" -> 12, "Bob" -> 20) // 也可以这种创建一个Map映射 val score1 = Map(("Jack", 12), ("Bob", 20)) // 根据key获取value,类似java中的map.get(key)若是获取一个不存在

从零学scala(二)数组相关操作、映射和元组

一:数组相关操作 定长数组 val array = Array[String]("a","b","c") //直接初始化数组的内容        println(array.mkString("|")) val array = new Array[String](2) //new一个长度为2的数据在通过更新的方法进行赋值        array.update(0, "0")        array.up

快学Scala-第四章 映射和元组

知识点: 1.构造映射,映射是对偶的集合 val scores1 = Map("Alice" -> 10, "Bob" -> 7, "Cindy" -> 9) //不可变映射 // val scores1 = Map(("Alice",),("Bob",),("Cindy",)) val scores2 = scala.collection.mutable.Map(&q

Scala:映射和元组

映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map("wcc100"->100)//不可变映射 scores: scala.collection.immutable.Map[String,Int] = Map(wcc100 -> 100) scala> val scores1 = scala.collection.mutable.Map

scala 基础六 scala Map和元组的操作

1.Map的介绍 Map(映射)是一种可迭代的键值对(key/value)结构.所有的值都可以通过键来获取.Map 中的键都是唯一的.Map 也叫哈希表(Hash tables).Map 有两种类型,可变与不变,区别在于可变对象可以修改它,而不可变对象不可以.默认情况下 Scala 使用不可变 Map.如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类 2.Map 的分类和定义   //不可变Map    var m1=Map("