Scala映射和元组
来源:互联网 发布:农村淘宝贷款 编辑:程序博客网 时间:2024/05/18 17:59
映射
- 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, "Bob" -> 33) //构造一个可变的映射
- val scores3 = new mutable.HashMap[String, Int] //构造一个空的映射,选定一个映射实现并给出类型参数
- val scores4 = Map(("Alice", 10), ("Bob", 33)) //另外一种定义映射的方式
- val bobScore = scores4("Bob") //类似于Java中的scores4.get("Bob");
- val bobScore2 = scores4.getOrElse("Bob", 0) //如果映射包含键"Bob",返回对应的值;否则,返回0
- //映射.get(key)这样的调用返回一个Option对象,要么是some(键对应的值),要么是None
- //更新映射中的值
- scores("Bob") = 90 //更新键"Bob"对应的值
- scores("Fred") = 88 //增加新的键/值对偶到scores
- scores +=("Bob" -> 20, "Fred" -> 30) //批量添加多个关系
- scores -= "Alice" //移除Alice键对应的值
- //如果对于不可变的映射,需要更改其值,那么可以使用如下方式
- var newScores = scores +("Bob" -> 1, "Fred" -> 7) //返回更新过的新映射
- newScores = scores - "Alice" //返回去掉Alice之后的新映射
- }
- }
迭代映射
for((k,v)<-映射)处理k和v如果你需要访问键或值,可以使用keySet和values方法,values返回一个Iterable
要反转一个映射-----即交换键和值的位置-----可以用:
for((k,v)<-映射)yield(v,k)
元组
映射是键/值对偶的集合。对偶是元组(tuple)的最简单形态---元组是不同类型的值的聚集。如果你有元组,val t = (1,3.14,"fred"),那么可以使用val second = t._2来访问第二个元素,也就是3.14,注意元组的各元组从1开始,而不是0。(这是scala恶心的地方之一,处处充满了变数,不够规整,不够统一,无为的为开发者增加了诸多记忆的负担,很担心scala并不会像Java那样流行,或许以后会出现比scala更优秀的JVM函数式语言)
元组可以用于函数需要返回不止一个值的情况,"New York".partition(_.isUpper)//输出对偶,分别是满足某个条件和不满足某个条件的字符
- object HelloWorld {
- def main(args: Array[String]) {
- val symbols = Array("<", "-", ">")
- val counts = Array(2, 10, 2)
- val pairs = symbols.zip(counts) //使用zip方法可以把多个值绑定在一起,以便它们能够被一起处理
- for ((s, n) <- pairs) {
- Console.print(s * n) //输出<<---------->>
- }
- println()
- //使用toMap方法可以将对偶的集合转换成映射
- val keys = Array
0 0
- Scala映射和元组
- Scala 映射和元组
- Scala映射和元组
- scala映射和元组
- Scala映射和元组
- Scala 映射和元组
- Scala元组和映射
- scala------数组映射和元组
- Scala学习笔记-映射和元组
- Scala学习(四)---映射和元组
- Scala映射与元组
- Step into Scala - 10 - 映射和元组
- scala学习第四章 映射和元组
- Scala坑四(映射和元组)
- 快学Scala第4章--映射和元组
- scala学习笔记3 映射和元组
- 快学Scala(4) 映射和元组
- Scala 学习(三)--- 映射和元组
- object-c编程tips-jastor自动解析
- 深入理解Activity生命周期的回调
- Python中的axis=0,axis=1
- 人脸检测LaTex报告
- 1.1简析View和ViewGroup
- Scala映射和元组
- RxJava的个人概述
- android源码中 C++文件log使用
- Quartz+spring实例应用(受教育其他博主的文章,在原来基础之上进行改正)
- android自定义底部Tab,项目整体界面框架
- leetcode Move Zeros
- 用C#生成n条不重复的n位验证码
- ubuntu 安装简单使用Emacs
- VB.NET关于Socket分包发送的原理分析