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

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

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB 1 下载并安装MySQL官方的 Yum Rep ...

  2. 页面报错时隐藏Tomcat信息

    一.问题描述Tomcat报错页面泄漏Apache Tomcat/8.0.53相关版本号信息,是攻击者攻击的途径之一.因此实际当中建议去掉版本号信息. 二.解决办法1.进入到tomcat/lib目录下, ...

  3. xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载

    本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上 ...

  4. Zookeeper集群搭建步骤及相关知识点深入了解

    1.zookeeper概念 zookeeper是一个分布式协调服务:a:zookeeper是为别的分布式程序服务的 b:zookeeper本身就是一个分布式程序(只要半数以上节点存活,zookeepe ...

  5. 理解上下文Context

    --摘自<Android进阶解密> 知识点: 1.Context的使用场景 1)使用Context调用方法,比如启动Activity.访问资源.调用系统级服务等 2)调用方法时传入Cont ...

  6. 动态规划——Best Time to Buy and Sell Stock III

    题意:用一个数组表示股票每天的价格,数组的第i个数表示股票在第i天的价格. 如果最多进行两次交易,但必须在买进一只股票前清空手中的股票,求最大的收益. 示例 1:Input: [3,3,5,0,0,3 ...

  7. 04-Python入门学习-流程控制

    一.流程控制if 语法1: if 条件:  code1  code2  code3  .... age=180 height=163 weight=75 sex='female' is_beautif ...

  8. Hibernate 双向一对多映射

    附代码: public class Order { private Integer id; private String OrderName; private Customer customer; p ...

  9. vue中Prop父子传值方法

    在用vue做项目的过程中感觉很好玩,特做下笔记... 父组件中: <template> <div> <fpdx-modal :zbArr="polygonArr ...

  10. Jmeter学习系列----2 录制脚本

    虽然专业的自动化测试人员都不会选择录制脚本的方式来进行自动化脚本的编写,但是,我们作为初学者还是可以学习一下怎么利用工具来进行脚本的录制,体验一下自动化工具的效率,下面,具体讲下如何使用jmeter自 ...