Scala的Map集合

devtools/2024/11/14 15:06:29/

Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。

默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类

在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。

Map常用操作有增加,删除,修改,查询

不可变Map

添加:如果key存在,就是修改

删除。只需要提供key

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

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

package Test//类型:不可变,可变
//操作:添加元素,删除元素,查询元素,修改元素,遍历
object day3 {def main(args: Array[String]): Unit = {//不可变Mapval map1 = Map("鄂"->"湖北省","湘"->"湖南省")//1.添加val map2 = map1+("豫"->"河南省")//如果key存在,就是修改
//    val map3 = map1+("豫"->"河南省")//2.删除。只需要提供keyval 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 foreachfor((key,value)<- map1){println(s"$key 是 ${value}的简称")}map1.foreach{case(key,value)=>{println(s"$key 是${value} 的简称}")}}println(map1)}}

可变的情况

package Test//导入Map包
import scala.collection.mutable
//类型:可变
object day4 {def main(args: Array[String]): Unit = {//可变Mapval map1 = mutable.Map("鄂"->"湖北省","湘"->"湖南省")//1.添加val map1 = ("豫" -> "河南省")//2.删除。只需要提供key
//    val 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 foreachfor ((key, value) <- map1) {println(s"$key 是 ${value}的简称")}
//    map1.foreach { case (key, value) => {
//      println(s"$key 是${value} 的简称}")
//    }
//    }println(map1)}}


http://www.ppmy.cn/devtools/133673.html

相关文章

Python实现PageRank算法

目录 第一部分:PageRank算法概述与原理1.1 什么是PageRank算法?1.2 PageRank算法的工作流程1.3 PageRank算法的时间复杂度第二部分:PageRank算法的Python实现(面向对象设计)2.1 Python类设计2.2 代码实现2.3 代码解释第三部分:案例1 - 动态网络中的PageRank计算(观察者模…

【网页设计】HTML5 和 CSS3 提高

目标 能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些 1. HTML5 的新特性 注&#xff1a;该部分所有内容可参考菜鸟教程菜鸟教程 - 学的不仅是技术&#xff0c;更是梦想&#xff01; (runoob.com) HTML5 的新增特性主要是针对于以前的不足&#xf…

将C++搭建的简单HTTP服务器升级为 HTTPS 服务器

HTTP 协议是不加密的&#xff0c;容易遭受中间人攻击&#xff08;MITM&#xff09;。为了提高安全性&#xff0c;你可以将服务器升级为 HTTPS 服务器&#xff0c;使用 SSL/TLS 加密流量。下面是如何将以下链接文章中的 HTTP 服务器修改为 HTTPS 服务器的步骤&#xff1a; ps:使…

Python自动化测试---Appium

常用adb命令 获取界面名&#xff1a;adb shell dumpsys window windows | grep mFocusedApp 获取包名界面名&#xff1a;adb shell dumpsys activity activities 查看已连接系统&#xff1a;adb devices 连接模拟器&#xff1a;adb connect IP:端口号 python-driver命令 前置…

Android Studio | 最新版本配置要求高,JDK运行环境不适配,导致无法启动App

Android Studio 的最新版本配置要求比较高&#xff0c;这时候需要降低插件的版本&#xff0c;才能正常启动项目 build.gradle 文件的 dependencies 部分中&#xff0c;使用 libs 作为一些常用库的别名。这些别名在项目的 gradle.properties 文件或者某个特定的 versions.prope…

2024 年 8 个最佳 API 设计工具图文介绍

8 个最佳 API 设计工具推荐&#xff0c;包括 Apifox、Postman、Swagger、Insomnia、Stoplight、Hoppscotch、RapidAPI和Paw。 详细介绍&#xff1a;2024 年 8 个最佳 API 设计工具推荐

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

DiskGenius工具扩容Mac OS X Apple APFS分区

DiskGenius是一款功能强大的磁盘分区工具&#xff0c;它支持Windows和Mac OS X系统&#xff0c;可以用于管理硬盘分区&#xff0c;包括扩容Mac OS X的Apple APFS分区。然而&#xff0c;直接使用DiskGenius来扩容Mac OS X的APFS分区可能存在一定的风险&#xff0c;因为不是专门为…