在scala中Map分为可变长(mutable)和不可变长(immutable)

/**
* 不可变长map 长度一旦初始化,就不能在进行更改
*/
// 通过箭头的方式创建map
val map = Map("name" -> "leo", "age" -> , "sex" -> "男") // 通过对偶元组的方式创建map
val map1 = Map(("name", "jack"), ("age", ), ("sex", "女")) // 通过两者混搭创建map
val map3 = Map("name" -> "tuoni", ("name", "hengr")) // ++ 操作合并两个map 原map不变
val newmap = map ++ map1 println(map + "," + map1 + "," + map3 + "," + newmap)
 /**
* 不可变长Map映射,长度,值一旦初始化后不能再次被改变
*/
val map4 = mutable.Map("a" -> "A")
map4.put("b", "B")
map4 += ("c" -> "C", "d" -> "D")
map4 ++= mutable.Map("hah" -> "HAH", ("a", "b"))
// 移除Map映射,mutable 包下
println(map4)
map4 -= ("b", "B")
map4 --= Set("a", "b")
map4.remove("c")
println(map4) // Map(b -> B, hah -> HAH, d -> D, a -> b, c -> C)
// Map(hah -> HAH, d -> D)
/**
* map映射常用操作方法
*/
// contains 方法判断一个key 是否存在,存在返回true,否则返回false
val map = mutable.Map("b" -> "B", "hah" -> "HAH", "d" -> "D", "a" -> "b", "c" -> "C")
println(map.contains("b")) //获取key对应的值,注意如果通过 Map(“key”)获取对应的值应该进行key是否存在判断
if (map.contains("e")) {
println(map("e"))
}
// 映射的get 方法也是用来获取key 对应的值,但是这个方法返回的是一个option对象,这个option
// 对象有两个子类,如果有key 则返回Some(some对象中封装了key对应的值,可以通过some的get
// 方法获取该值)对象。
// 没有key则返回None对象 val value: Option[String] = map.get("a")
//isEmpty方法可以用来判断是Some对象还是None
if (!value.isEmpty) {
println(value)
} else {
println(value)
}
  // 如果key 存在则返回对应的值,如果key不存在则返回给定的值
  val v1 = map.getOrElse("f","EEE")
  println(v1)
/**
* LinkedHashMap 插入有序,会按照我们的插入顺序排序,因为底层是链表结构
*/
val map5 = mutable.LinkedHashMap[String, String]()
map5 += ("d" -> "D")
map5 += (("a", "A"))
map5("c") = "C"
map5("b") = "B"
println(map5) /**
* SortedMap 可以自动对Map的key进行排序
*/
val map6 = mutable.SortedMap[String, String]()
map6("c") = "C"
map6("b") = "B"
map6("a") = "A"
println(map6)

Scala集合Map的更多相关文章

  1. Scala集合操作

    大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储技术现在比较经典方案是使用Hadoop,不过也很多方案采用Kafka.  ...

  2. scala集合

    优先使用不可变集合.不可变集合适用于大多数情况,让程序易于理解和推断,因为它们是引用透明的( referentially transparent )因此缺省也是线程安全的. 使用可变集合时,明确地引用 ...

  3. scala集合和高级函数操作

    scala常用函数操作 reduceLeft   是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ ...

  4. Scala集合常用方法解析

    Java 集合 : 数据的容器,可以在内部容纳数据  List : 有序,可重复的  Set : 无序,不可重复  Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...

  5. Scala集合笔记

    Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更 ...

  6. Scala集合(二)

    将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_. ...

  7. Scala集合(一)

    Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.ha ...

  8. Scala集合类型详解

    Scala集合 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象. Scala 集合分为可变的和不可变的集合. 可变集合可以在适当的地方被更新或扩展.这意味着你可以修改,添加,移除一个集合 ...

  9. 再谈Scala集合

    集合!集合!一个现代语言平台上的程序员每天代码里用的最多的大概就是该语言上的集合类了,Scala的集合丰富而强大,至今无出其右者,所以这次再回过头再梳理一下. 本文原文出处:  还是先上张图吧,这是我 ...

随机推荐

  1. Linux 服务器运行健康状况监控利器 Spotlight on Unix 的安装与使用

    1.本文背景 1.1.Linux 服务器情况 # cat /etc/issueRed Hat Enterprise Linux Server release 6.1 (Santiago)Kernel ...

  2. Windows Internals 笔记——线程

    1.进程有两个组成部分,一个进程内核对象和一个地址空间.线程也有两个组成部分: 一个是线程的内核对象,操作系统用它管理线程.系统还用内核对象来存放线程统计信息的地方. 一个线程栈,用于维护线程执行时所 ...

  3. 快速部署docker

    前言:docker就不用说了,好东西啊.更好的利用服务器的资源,各个服务是相互隔离的,文件的存放更加规律,也好清理空间及数据备份 docker安装-----社区版ce(免费的,另一版本收钱的) 系统: ...

  4. selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项

    1. 执行js脚本 控制滚动条 # http://www.cnblogs.com/yoyoketang/p/6128655.html In [347]: js = "window.scrol ...

  5. kubernetes核心概念

    摘抄自:  https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:A ...

  6. Fiddler工具使用介绍

    Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改. 代理就是在 ...

  7. NEL程序员专用轻钱包 进入0.01状态了

    这个轻钱包能干什么,现在就能在测试网看个余额,转个帐,调用个合约. 而且功能非常程序员化 你会说是不是没啥用   但是他有非常有用,因为他可以很容易的拼出NEOGUI拼不出来的交易 比如参与ICO交易 ...

  8. linux进阶指令

    1.df  查看磁盘空间  2.free   查看内存使用 -m 表示以mb位单位查看 total    总大小 used   使用过的空间 free 空闲的空间 shared 共享内存 buffer ...

  9. Express内置方法

    创建一个 Express 应用.express()是一个由 express 模块导出的入口(top-level)函数. //最顶级:top-level 内置方法 express.static(root ...

  10. gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题

    .相信所有的前端攻城狮.听到浏览器兼容性问题都深有体会. 浏览器兼容性问题,无非就是因为浏览器内核不同,浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.还有就是根据浏览器的版本不同,所兼 ...