首页 > 编程语言 > 详细

《快学Scala》第四章——映射和数组

时间:2019-11-27 18:00:51      阅读:59      评论:0      收藏:0      [点我收藏+]

一.本章要点

  • Scala有十分易用的语言来创建,查询和遍历映射
  • 你需要从可变和不可变的映射中做出选择
  • 默认情况下,你得到的是一个哈希映射,不过你也可以指明要树形映射
  • 你可以很容易地在Scala映射和Java映射之间来回切换
  • 元祖可以用来聚集值

二.构造映射(哈希表)

  构造不可变映射:

    val scores=Map("Alice"->100,"Bob"->3,"Cindy"->8)

  构造可变映射:

    val scores=scala.collection.multable.Map("Alice"->10,"Bob"->3,"Cindy->8") 

  构造空映射:    

    val scores=scala.collection.multable.Map(String,Int)

  注:也可以使用()替换->     

三.获取映射中的值

  使用()获取,如果没有该键会抛出异常,使用contains方法检查是否包含某个键,可以使用getOrElse方法获取。

四.更新映射中的值

  可变映射:

    直接更新:scores("Bob")=20

    没有该键则增加新的值:scores("LYQ")=100

    通过+=添加多个关系:scores+=("Bob"->11,"Fed"->23)

    通过-=移除:scores-="Bob"

  不可变映射:

    可以获取包含所需要的更新的新映射:val newScores=scores+("Bob"->10,"Fed"->22)

    通过-获取一个新的去掉该键的值:scores-=scores-"Alice"      

五.迭代映射

  迭代键值:for((k,v)<-映射) 处理k,v;  

  只处理键:scores.keySet();

  只处理值:scores.values

六.已排序映射

  不可变树形映射:val scores=scala.collections.immutable.SortedMap("Alice"->10,"Fred"->6,"Bob"->9)

  可变的树形结构(Scala目前没有):可以用Java的TreeMap

  按插入顺序访问所有键:val months=scala.collections.mutable.LinkedHashMap(.....)

七.与Java的互操作

技术分享图片

 

 

 

 

 

 

 

 

 

 

八.元组

   元组是不对类型的值的聚集,如(1,3.14,”Fred“)类型为Tuple3(Int,Double,java.lang.String),可以通过_1,_2,_3依次递增访问组元(如t._1,也可以把.替换为空格)

九.拉链操作

《快学Scala》第四章——映射和数组

原文:https://www.cnblogs.com/lyq-biu/p/11943907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!