Map的分类

  • 一、可变Map
    • 第一步:创建可变Map
    • 第二步:删除元素
    • 第三步:修改元素
    • 第四步:合并两个Map
    • 第五步:可变Map代码+代码图如下
  • 二、不可变Map
    • 第一步:创建Map
    • 第二步:访问元素
    • 第三步:不可变Map代码+代码图如下

一、可变Map

  • 可变Map:直接可以更改原位置的元素不用返回新的值
  • 不可变Map:不可直接对原位置的元素进行更改 会返回一个新的值(需定义 VAL 值名)

第一步:创建可变Map

val map1:mutable.Map[String,Int]=mutable.Map("a"->13,"b"->25,"hello"->3)
println(map1)
map1.put("c",5)

第二步:删除元素

 map1.remove("c")//只需要提供key值就行map1 -= "d"//提供key值 把key和value一起删除

第三步:修改元素

 map1.update("c",5)map1 += (("e",7))println(map1)

第四步:合并两个Map

 val map2: mutable.Map[String,Int]=mutable.Map("aaa"->11,"b"->25,"hello"->5)val map3= map1 ++ map2println(map3)//map1 ++=map2

}
}

第五步:可变Map代码+代码图如下

  def main(args: Array[String]): Unit = {//可变mapval map1:mutable.Map[String,Int]=mutable.Map("a"->13,"b"->25,"hello"->3)println(map1)map1.put("c",5)//3.删除元素map1.remove("c")//只需要提供key值就行map1 -= "d"//提供key值 把key和value一起删除//修改元素map1.update("c",5)map1 += (("e",7))println(map1)//5.合并两个Mapval map2: mutable.Map[String,Int]=mutable.Map("aaa"->11,"b"->25,"hello"->5)val map3= map1 ++ map2println(map3)//map1 ++=map2}}

二、不可变Map

  • 不可变Map 1.创建不可变集合Map 2.循环打印 3.访问数据 4.如果key不存在,返回0

第一步:创建Map

val map1:Map[String,Int]=Map("a"->13,"b" ->25,"hello"->3)
println(map1)

##第二步:遍历元素

   map1.foreach(println)
  • 得到Key的值
for (key <- map1.keys){println(s"$key---->${map1.get(key).get}")
}

第二步:访问元素

  • 4.访问某一个key的value
  println(map1.get("a"))//如果不想得到那个返回值some(keys)那么就在得到的key后面.getprintln(map1.get("b").get)//这种做法不是特别的安全println(map1.getOrElse("hello",0))//返回第一个值
  • //不可变的集合不可put 增加元素

}
}

第三步:不可变Map代码+代码图如下

   //存储的内容也是键值对//不可变Map 1.创建不可变集合Map 2.循环打印 3.访问数据 4.如果key不存在,返回0val map1:Map[String,Int]=Map("a"->13,"b" ->25,"hello"->3)println(map1)//2.遍历元素map1.foreach(println)//得到Key的值for (key <- map1.keys){println(s"$key---->${map1.get(key).get}")}//4.访问某一个key的valueprintln(map1.get("a"))//如果不想得到那个返回值some(keys)那么就在得到的key后面.getprintln(map1.get("b").get)//这种做法不是特别的安全println(map1.getOrElse("hello",0))//返回第一个值//不可变的集合不可put 增加元素}
}

Scala集合—可变Map和不可变Map |CSDN独创相关推荐

  1. 20_集合_第20天(Map、可变参数、Collections)

    今日内容介绍 1.Map接口 2.模拟斗地主洗牌发牌 01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式 ...

  2. 最完整的集合概述:集合的概述和集合的继承体系、Collection集合 、List集合、数据结构、LinkedList集合、set-泛型-树、Map、HashMap、可变参数、创建不可变的集合

    二.Collection集合      注意点:  增强for的快捷方式:  三.List集合   指定索引获取元素可以跟普通for结合起来遍历这个集合 四.数据结构: (1)栈 :  (2)队列: ...

  3. scala的多种集合的使用(6)之映射Map的操作方法

    1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: sc ...

  4. React Native之(var和let区别 )(简单解构)(map对象遍历)(可变顺序参数和不可以变顺序参数函数)

    1 var和let区别 let左右范围在块里面,var定义的变量可提升,用let声明的变量不可以声明2次 2 简单解构 let [a, b, c] = [1, 2, 3]; 3  map对象遍历 co ...

  5. Scala 集合 —— Array、Map、Seq、Set

    until vs to until 不包括右端点: to 包括右端点: 格式化输出 val i = 100 val s = "hello world" println(f" ...

  6. 9.可变参数创建不可变集合

    一.可变参数 1.可变参数介绍 可变参数又称参数个数可变,用做方法的形参出现,那么方法参数个数就是可变的了. 方法的参数类型已经确定,个数不确定,我们可以使用可变参数. 2.可变参数定义格式 修饰符 ...

  7. 集合、set、list、map、所有集合基本知识使用方法总结

    1.集合的概述 集合概述:就是一个专门存放多个引用数据类型对象的容器[重点::只能存放引用数据类型] 特点:1.它可以存放多种数据类型对象2.集合的长度可变的3.支持泛型 面试题:集合和数组的对比 数 ...

  8. java集合: List、Set、Map总结 + HashMap/Hashtable 差别

    List:(有序,能够反复)通过下标索引 ----ArrayList  可变数组,随机查找 ----LinkedList    链表,不论什么位置插入删除快 ----Vector    效率比arra ...

  9. Java SE基础知识详解第[12]期—集合(Set、Collections、Map、集合嵌套)

    写在前面: 每一个不曾起舞的日子,都是对生命的辜负. 希望看到这里的每一个人都能努力学习,不负韶华,成就更好的自己. 以下仅是个人学习过程中的一些想法与感悟,Java知识博大精深,作为初学者,个人能力 ...

最新文章

  1. 训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...
  2. 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...
  3. kaggle比赛模型融合指南
  4. Java深度历险(二)——Java类的加载、链接和初始化
  5. php header x-auth-token,使用Angular 2正确设置Header X-Auth-Token
  6. 个人认为不错的句子(part2)--计算机是一种工具,但是如果没有绝对精确的指令,计算机也将一无是处
  7. decorators 参数_Python Decorators(二):Decorator参数
  8. 【转】解密Qt安装目录的结构
  9. spring:我是如何解决循环依赖的?
  10. 如何禁止用户安装应用程序,记下来,方便以后用
  11. Atitit 增强代码健壮性 出错继续执行恢复模式,就像vbs那样我以为我可以使用Try/Catch,但是我找不到异常后是否可以继续执行代码,并且找不到如何在最后显示错误消息。目录PHP
  12. 数据清洗之微博内容清洗
  13. php爬取房源,Python 爬虫 链家二手房(自行输入城市爬取)
  14. 20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕
  15. weinre调试环境搭建
  16. Elasticsearch专栏-1.为什么引入es
  17. ArcGIS二次开发入门(一)
  18. 产品经理学大数据——什么是大数据?(1)
  19. 5G网络硬盘,100M文件大小,联想研究院发布联想社区化数据服务
  20. 汽车电子_EMC测试_CE电流法整改

热门文章

  1. Linux中vi命令编辑文件时显示行号
  2. 流式计算、实时计算和离线计算
  3. Ubuntu查看系统信息(CPU、GPU信息)
  4. 100家!第一批5G应用解决方案供应商推荐名录
  5. java接口可以被继承吗
  6. 基于Twitter数据的情感预测与案例分析
  7. 基于NLP的互联网情感分析与预警
  8. 菜鸟菜鸟菜鸟菜鸟编程之路
  9. WMS 原型详解 | 产品经理最讨厌的系统
  10. SpringBoot+Vue项目线上教学平台