import scala.collection.mutable

/**
* Map集合的简单使用
*/
object MapUse {
def main(args: Array[String]): Unit = { // 创建一个空的map -- 注意:这里要用实现类,因为Map是抽象类,使用时需要声明具体实现类
val emptyMap = new mutable.HashMap[String,Int]()
println(emptyMap) // Map() // 不可变Map
val immutableMap = Map("Jim" -> 22, "yxj" -> 32)
println(immutableMap)
//immutableMap("yxj") = 33
// Error:(9, 5) value update is not a member of scala.collection.immutable.Map[String,Int]
// immutableMap("yxj") = 33 // 创建可变的map
val ages = scala.collection.mutable.Map("jim" -> 20, "link" -> 33)
println(ages)
// 可以正常修改
ages("jim") = 30
println(ages) // 获取一个key 33
println(ages("link")) // 获取不存在的key会报异常 Exception in thread "main" java.util.NoSuchElementException: key not found: yxj
//println(ages("yxj"))
// 可以使用contains方法
val yxj = if(ages.contains("yxj")) ages("yxj") else 0
println(yxj) // 打印 0
// 更好的方法是使用函数: getOrElse
val wll = ages.getOrElse("wulanlan" , 1)
println(wll) // 打印 1 // 修改 不可变map
val maps = immutableMap + ("yxj"-> 33)
println(maps) // 打印 Map(Jim -> 22, yxj -> 33) val map = immutableMap - "Jim"
println(map) // map的遍历,遍历所有的
for ((key , value) <- ages){
println(key + ":" + value)
} // 遍历key
for(key <- ages.keySet){
println("key=" + key)
} // 遍历 value
for( value <- ages.values) {
println("value=" + value)
}
} }

  

scala中Map集合的简单使用的更多相关文章

  1. Programming In Scala笔记-第十七章、Scala中的集合类型

    本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...

  2. (转)scala中map与flatMap浅析

    在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合.由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好 ...

  3. java中Map集合的常用方法 (转)

    原文地址:https://www.cnblogs.com/xiaostudy/p/9510763.html Map集合和Collection集合的区别 Map集合是有Key和Value的,Collec ...

  4. java中Map集合的常用方法

    Map集合和Collection集合的区别 Map集合是有Key和Value的,Collection集合是只有Value. Collection集合底层也是有Key和Value,只是隐藏起来. V p ...

  5. java中Map集合的理解

    Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 ...

  6. scala中Map和Set

    scala中Set包含可变set和不可变Set,set的子类HashSet,各有一个扩展了可变和不可变的set特质.  可变set import scala.collection.mutable.Se ...

  7. Java中map集合系列原理剖析

    看了下JAVA里面有HashMap.Hashtable.HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和Hash ...

  8. java中map集合的迭代

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  9. scala中list集合的操作与总结

    /** * Created by root * Description : List */ object ListTest { def main(args: Array[String]): Unit ...

随机推荐

  1. vim的基本快捷操作(一)

    一.光标移动 ^ 到该行第一个非空格字符处. + 到下一行的第一个非空格字符处 - 到上一行的第一个非空格字符处 `. 到上次修改点 <c-o> 到上次所停留位置, <c-i> ...

  2. mongo之find结果对象map实例处理

    find 找到结果对象列表 res = await SS_StudentsLeaveTask.find(filter=_filter) self.resData = map(lambda x: str ...

  3. etimer

     Contiki包含一个时钟模型和5个定时器模型(timer, stimer, ctimer, etimer, and rtimer),先学习etimer吧. etimer是一个结构体,(个人用eve ...

  4. vue v-for 组件传值 enter传值

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. leetcood学习笔记-168-excel表列名称

    题目描述: 方法一:asiic码 class Solution: def convertToTitle(self, n: int) -> str: if (n-1)//26 == 0: retu ...

  6. unity 打包Apk生成签名证书keystore

    进行Android项目开发中想要将androidapp导出为apk的时候需要选择一个数字证书,即keystore文件(android.keystore),它用来对我们的APP进行签名,是导出APP的一 ...

  7. Python获取房价信息和导出EXCEL

    房价与生活息息相关,那么各地区房价情况和差别咋样呢?  可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~ 作为一个合格的程序员,要懂得用代码解决问题! 第一步:打开一个房产交易平台 ...

  8. JavaScript中的节流和防抖

    节流: 在规定时间内,多次触发事件,但是只执行一次 场景:输入框搜索,地图渲染 优化用户体验 /** * 节流 规定时间内不管触发多少次只执行一次 * @param {Function} fn 实际要 ...

  9. NOIp2018集训test-10-6/test-10-7 (联考五day1/day2)

    昨天考完月考,明天初赛,dcoi2017级今天终于开始停课准备noip了,大概没有比本弱校停课更晚的学校了吧.本来就够菜了,怕是要凉透哦. DAY1 T1石头剪刀布 据说爆搜随便做,但是我觉得我的O( ...

  10. elasticsearch的基本用法(转载)

    本文出自:http://blog.csdn.net/feelig/article/details/8499614 最大的特点:  1. 数据库的 database, 就是  index  2. 数据库 ...