首页 > 其他分享 >Scala 中的Map 映射

Scala 中的Map 映射

时间:2024-11-13 14:17:10浏览次数:3  
标签:Map val 映射 Scala 元素 map1 key println get

类型: 不可变
操作: 添加元素,删除元素,查询元素,修改元素,遍历

一、 不可变的:

object Test10 {
  def main(args: Array[String]): Unit = {
    //不可变
    val map1=Map("鄂"->"湖北省","湘"->"湖南省","青"->"青岛市")
  }
}

1) 添加元素


    val map2=map1+("豫"->"河南省")
//    如果key存在,就是修改
//    val map3=map1+("鄂")

2)删除元素:只需要提供key

    val map3=map1-"鄂"

3)查询元素:

      3.1 get 方法。输入key,如果找到,就返回包装数据,如果没有找到,就返回None

       3.2 直接: map(key名)。如果key不存在,就会报错!!!!

    val rs =map1.get("鄂")
    println(rs.get)
    println(map1("鄂1"))

4)修改元素:把青-> 青岛,改成青->青岛市

    //    map1("青")="青岛市"
    val map4=map1+("青"->"青岛市")

5)遍历

     5.1 for

     5.2 foreach

    for ((key,value)<-map1){
      println(s"$key 是 ${value}的简称")
    }

    map1.foreach{case (key,value)=>{
      println(s"$key 是 ${value}的简称")
    }}

类型: 可变

操作: 添加元素,删除元素,查询元素,修改元素,遍历

二、可变的:

//可变的Map,要导入包
import scala.collection.mutable

object Test10_1 {
  def main(args: Array[String]): Unit = {
    //可变Map
    val map1=mutable.Map("鄂"->"湖北省","湘"->"湖南省","青"->"青岛市")
  }
}

1)添加元素


    map1 += ("豫"->"河南省")

2) 删除元素:只需要提供key


//    map1-="鄂"

3)查询元素

      3.1 get 方法。输入key,如果找到,就返回包装数据,如果没有找到,就返回None

       3.2 直接: map(key名)。如果key不存在,就会报错!!!!

    //    val rs =map1.get("鄂")
    //    println(rs.get)
    println(map1("鄂"))

4) 修改元素:把青-> 青岛,改成青->青岛市

map1("青")="青岛市"

5) 遍历

       5.1 for

       5.2 foreach

    for ((key,value) <- map1){
      println(s"$key 是 ${value}的简称")
    }

    map1.foreach { case (key,value) => {
      println(s"$key 是 ${value}的简称")
    }}

标签:Map,val,映射,Scala,元素,map1,key,println,get
From: https://blog.csdn.net/2401_87129058/article/details/143685933

相关文章

  • MapReduce初级编程实践:编程实现文件合并和去重操作
    实验环境:操作系统:Linux(Centos7);  Xsell7Hadoop版本:3.4.0(这里的版本根据自己的修改,可能小部分版本的Hadoop不适用于本文实验)对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件......
  • MapReduce初级编程实践:编写程序实现对输入文件的排序
     实验环境:操作系统:Linux(Centos7);  Xsell7Hadoop版本:3.4.0(这里的版本根据自己的修改,可能小部分版本的Hadoop不适用于本文实验)现在有多个输入文件,每个文件中的每行内容均为一个整数。要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两......
  • 【SigmaPlot 15.0.0.13软件下载与安装教程】
    1、安装包SigmaPlot15:链接:https://pan.quark.cn/s/b5103c671458提取码:1fsQ2、安装教程(过程安装建议关闭杀毒软件)1)       双击SigmaplotInstaller.exe安装,弹窗安装对话框  2)       点击Next   3)       选择Iaccept,点击Next  ......
  • c++(vector、map、list、deque、set)总结-面试
    目录1.vector2.deque3.list4.map5.set6.queue7.stack8.STL容器使用时机希望在面试和学习过程中可以帮助大家梳理重点C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续......
  • nextjs 动态生成sitemap.xml 文件
    在app目录下创建文件sitemap.js,默认导出sitemap方法importfsfrom"fs";importpathfrom"path";constbaseUrl=process.env.NEXT_PUBLIC_SITE_URL||"https://www.adog.life";constbaseDir="src/app";constdynamicDirs=[......
  • MapReduce解析简历存储到Postgres数据库
    目录一、功能描述二、代码实现1、代码结构2、ResumeDBWritable代码3、ResumeWritable代码4、ResumeSDK代码 5、ResumeDBMapper代码6、ResumeDBReducer代码7、ResumeDBPartationer代码8、ResumeDBDriver代码一、功能描述简历数据经过ETL流程,已经上传到HDFS上,需要针......
  • Scala练习
    importscala.collection.mutable.ListBuffer//1.使用caseclass创建图书信息类Book:caseclassBook(ID:String,bookName:String,author:String,price:Double,varamount:Int)objectdemo1{defmain(args:Array[String]):Unit={//2.创建一个名为BookList......
  • Lec 07 操作系统管理页表映射
    lec07操作系统管理页表映射0Contents1操作系统设置页表映射何时设置页表映射?操作系统自己使用的页表--在启动时填写--映射全部物理内存虚拟地址=物理地址+固定偏移(直接映射,DirectMapping)思考:为什么需要直接映射?应用进程的页表--何时设置?2立即映......
  • 如何正确导入mapstruct,同时避免编译时mapstruct与lombok冲突
    本文介绍编译时产生的冲突,导包时期产生的冲突请劳驾查找其他解决方法一般情况下只需要按照官网的导入即可,但如果同时使用了lombok,则需要小心。详细信息可以查看官网文档:MapStruct1.5.5.Final集成lombok注意:在编译测试的时候,一定先清理再编译。这样可以解决80%的报错问题......
  • web 接入 bind map
    <scripttype='text/javascript'src='http://www.bing.com/api/maps/mapcontrol?branch=release&callback=loadMapScenario'asyncdefer></script>functionloadMapScenario(){varmyStyle1={......