scala映射和元组
来源:互联网 发布:美国指数型基金数据 编辑:程序博客网 时间:2024/05/18 09:11
scala映射和元组
1.构造映射
//构造一个不可变映射val myMap = Map("key1" -> "val1", "key2" -> "val2","key3" ->"val3") println(myMap("key2"))//构造可变映射val myMap2 = new scala.collection.mutable.HashMap[String,String]myMap2.+=("kk" -> "vv")
2.获取映射中的值
根据key获取得到对应value的值。如果映射中不包含key值,则会抛出异常,可以使用contains方法检查是否包含某一个key。
val kkkey = if(myMap2.contains("kkk")) myMap2("kk") else "newval"println(kkkey)//快捷方法println(myMap2.getOrElse("kkk", "new value2"))
3.更新映射中的值
//直接通过“=”进行赋值就可以更改对应key的value的值myMap2("kk") = "value3"//通过+=操作来添加元素myMap2 += ("key10" -> "value10")println(myMap2("key10"))//通过-=来移除映射中对应key的元素myMap2 += ("key10")
4.遍历映射
//获取key或value的集合myMap2.keySet;myMap2.values//遍历映射 for((k,v) <- myMap2){ println("k" +" ->" + v)}//交换key valueval newMap = for((k,v) <- myMap2) yield (v,k) for((k,v) <- newMap){ println(k + " -> " + v)}
5.映射排序
val newMap = scala.collection.immutable.SortedMap("k1" ->"v1","k3" -> "v3","k2" -> "v2") for((k,v) <- newMap){ println(k + " -> " + v)}输出:
k1 -> v1
k2 -> v2
k3 -> v3
//要按照插入顺序访问键值,使用LinkedHashMap,因为各个元素按照插入顺序两两先后之间维持了一个指针val newMap = scala.collection.mutable.LinkedHashMap("k1" ->"v1","k3" -> "v3","k2" -> "v2") for((k,v) <- newMap){ println(k + " -> " + v)}输出:
k1 -> v1
k3 -> v3
k2 -> v2
6.元组
元组是不同类型的值的聚集。//定义一个元组val t = (11,11.11,"sreing")//通过"._n"进行元组元素的访问(n表示从1开始的索引) println(t._1 )//元组多用于函数返回值不止一种的情况如:println(("Cai Yong").partition(_.isLower))输出:(aiong,C Y)
7.拉链操作
使用元组的原因之一就是把多个不同类型的值捆绑在一起,以便它们能够被一起处理,可以用zip方法来完成。val pairs = keys.zip(vals)for((k,v) <- pairs) println(k + " -> " + v)//如果有一个键集合和一个对应的值集合,那么就可以用拉链将它们组合成一个映射。keys.zip(vals).toMap
>>>>>__以上内容摘自:《快学Scala》 [美]Cay S. Horstmann著 电子工业出版社__<<<<<
0 1
- Scala映射和元组
- Scala 映射和元组
- Scala映射和元组
- scala映射和元组
- Scala映射和元组
- Scala 映射和元组
- Scala元组和映射
- scala------数组映射和元组
- Scala学习笔记-映射和元组
- Scala学习(四)---映射和元组
- Scala映射与元组
- Step into Scala - 10 - 映射和元组
- scala学习第四章 映射和元组
- Scala坑四(映射和元组)
- 快学Scala第4章--映射和元组
- scala学习笔记3 映射和元组
- 快学Scala(4) 映射和元组
- Scala 学习(三)--- 映射和元组
- Java调用Python脚本
- PAT-B 1033. 旧键盘打字
- <Python进阶读书笔记>之(二) 生成器
- mysql 连接出错 'mysqladmin flush-hosts'
- SharedPreferences存储多种类型
- scala映射和元组
- 【高精度算法】A-B(答案可负)
- QQ、Qzone分享的一些注意项
- 剑指offer——扑克牌顺子
- numpy 内置函数总结
- <Python进阶读书笔记>之(三) Map, Filter和reduce
- vivado设计流程
- PAT-B 1036. 跟奥巴马一起编程
- 欢迎使用CSDN-markdown编辑器