快学Scala 第五课 (构造映射,获取映射值,更新映射值,迭代映射,与Java互操作)
构造映射:
val score = Map[String, Int]()
val score1 = HashMap[String, Int]() val value1 = Map[String, Int]("aa" -> 1, "bb" -> 2)
val value2 = Map[String, Int](("aa", 1), ("bb", 2))
获取映射值:
println(if(value2.contains("cc")) value2("cc") else 0)
println(value2.getOrElse("cc", 0))
println(value2.getOrElse("aa", 0))
更新映射值:
score1("aa") = 1
score1("bb") = 2
score1 += ("cc" -> 3, "dd" -> 4)
score1 += (("cc", 3), ("dd", 4))
score1 -= "cc"
迭代映射:
for((k,v) <- value2){
println(k)
println(v)
}
value2.keySet
println(value2.values)
for (v <- value2.values) println(v)
println(for ((k, v) <- value2 ) yield {(v, k)})
与Java互操作:(java.util.Properties 转 scala.collection.mutable.Map)
val prop = new Properties()
prop.put("aaa", "1")
prop.put("bba", "2") import scala.collection.JavaConversions.propertiesAsScalaMap
val scalaMap: scala.collection.mutable.Map[String, String] = prop
scalaMap.foreach(println)
快学Scala 第五课 (构造映射,获取映射值,更新映射值,迭代映射,与Java互操作)的更多相关文章
- 快学Scala 第二十课 (trait的构造顺序)
trait的构造顺序: 首先调用超类构造器 特质构造器在超类构造器之后,类构造器之前执行 特质从左向右被构造 每个特质当中,父特质先被构造 如果多个特质共有一个父特质,而那个父特质已经被构造,则不会被 ...
- 快学Scala 第四课 (多维数组,与Java集合的互操作)
Scala二维数组的定义: val arr2 = Array.ofDim[String](2, 2) arr2(0)(0) = "aa" arr2(1)(0) = "bb ...
- 快学Scala 第十三课 (类型层级,对象相等性)
Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...
- 快学Scala 第十一课 (类继承)
类继承: class People { } class Emp extends People{ } 和Java一样,final的类不能被继承.final的字段和方法不能被override. 在Scal ...
- 快学Scala 第十课 (包和包对象)
Scala包定义: 嵌套式: package a1 { class a1Class{ val age = 10 } package a2 { class PackageTest { def main( ...
- 快学Scala 第八课 (嵌套类)
嵌套类: class Human { class Student{ val age = 10 } } object ClassDemo { def main(args: Array[String]): ...
- 快学Scala 第七课 (类构造函数)
类 主构造器: class Person (var name: String){ } 主构造参数可以不带val或者var,如果没有被其他方法使用,则不保存为字段. 如果被其他方法使用,则被升格为字段, ...
- 快学Scala 第三课 (定长数组,变长数组, 数组循环, 数组转换, 数组常用操作)
定长数组定义: val ar = new Array[Int](10) val arr = Array("aa", "bb") 定长数组赋值: arr(0) = ...
- 快学Scala 第二十一课 (初始化trait的抽象字段)
初始化trait的抽象字段: trait Logged { println("Logged constructor") def log(msg: String){ println( ...
随机推荐
- 牛客多校第五场 E room 二分图匹配 KM算法模板
链接:https://www.nowcoder.com/acm/contest/143/E来源:牛客网 Nowcoder University has 4n students and n dormit ...
- MPA JS CSS预处理方案
1.WebPack 添加配置文件webpack.config.js,直接在当前目录运行 webpack. var basepath = '/root/webapps/happ'; var glob = ...
- Nginx简介及配置文件详解
http://blog.csdn.net/hzsunshine/article/details/63687054 一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务 ...
- 你不得不知道的HashMap面试连环炮
为什么用HashMap? 简述一下Map类继承关系? 解决哈希冲突的方法? 为什么HashMap线程不安全? resize机制? HashMap的工作原理是什么? 有什么方法可以减少碰撞? HashM ...
- maven仓库的配置
今天接触到了maven的配置问题,特此来记录一下,也给我这样的小白一个参考. 目标:eclipse中配置指定的maven仓库. 说明: 使用过maven项目的话,会在你的C:\Users\lenovo ...
- 聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎视频教程
下载链接:https://www.yinxiangit.com/595.html 目录: 第1章 课程介绍介绍课程目标.通过课程能学习到的内容.和系统开发前需要具备的知识 第2章 windows下搭建 ...
- jvm默认垃圾收集器(JDK789)
jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel ...
- nginx部署成功却没有办法访问
1.首要想到的问题是防火墙没关 注意:因为centos7.0默认不是使用iptables方式管理,而是firewalld方式.CentOS6.0防火墙用iptables管理. 2.解决: ①首先查看防 ...
- hive 元数据解析
在使用Hive进行开发时,我们往往需要获得一个已存在hive表的建表语句(DDL),然而hive本身并没有提供这样一个工具. 要想还原建表DDL就必须从元数据入手,我们知道,hive的元数据并不存放在 ...
- 松软科技课堂:sql函数-AVG
定义和用法 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. SQL AVG() 语法 SELECT AVG(column_name) FROM table_name SQL AVG() ...