Scala中Map与集合

scala-hashmap:Scala中的基本HashMap实现 Scala中的基本HashMap实现 应对KPCB奖学金 依存关系 brew install sbt # on Mac 跑步 sbt run 测试 sbt test 立即下载

一、scala中map的简单使用

// 创建一个空的可变map// 在scala中HashMap也分可变和不可变,在使用过程中要注意时导的mutable 还是 immutable包下的HashMapval emptyMap = HashMap[String, Int]()println(emptyMap) // Map()// 定义一个不可变Mapval immutableMap = Map("rock" -> 22, "jason" -> 32)println(immutableMap)// immutableMap("rock") = 33 // immutableMap.type does not take parameters// 创建可变的mapval ages = scala.collection.mutable.Map("rock" -> 20, "jason" -> 33)println(ages)// 对可变map进行修改ages("jason") = 30println(ages)// 获取一个key 33println(ages("jason"))// 获取不存在的key会报异常 Exception in thread "main" java.util.NoSuchElementException: key not found: yxj//    println(ages("jack"))// 可以使用contains方法val jack = if (ages.contains("jack")) ages("jack") else 0println(jack) // ==> 0/** * 更好的方法是使用函数: getOrElse * def getOrElse[B1 >: B](key: A, default: => B1): B1 = get(key) match { * case Some(v) => v * case None => default * } * * 调用该方法时 实际上会根据值进行匹配,匹配不到返回参数中指定的默认值 */val wll = ages.getOrElse("jack", 1)println(wll) // ==> 1// 修改 不可变mapval maps = immutableMap + ("jack" -> 33)println(maps) // 打印 Map(Jim -> 22, yxj -> 33)// 两个map相加val mapss = maps ++ mapsprintln(mapss)// 删除map中值val map = immutableMap - "jack"println(map)// map的遍历,遍历所有的for ((key, value) <- ages) {  println(key + ":" + value)}// 遍历keyfor (key <- ages.keySet) {  println("key=" + key)}// 遍历 valuefor (value <- ages.values) {  println("value=" + value)}/** * 排序 * 定义一个不可变的SortedMap * 在操作映射时,需要选定一个实现(哈希表或者平衡树,默认情况下scala给的是哈希表。 * 由于对使用的键没有很好的哈希函数,或者需要顺序的地访问所有的键, * 如果要得到一个不可变的树形映射而不是哈希映射的话,可以直接使用 immutable.SortedMap */val scores: SortedMap[String, Int] = SortedMap(  "Alice" -> 98,  "Mark" -> 67,  "Bob" -> 82,  "Cindy" -> 59)println(scores)// scala中并没有可变的树形映射,不过可以使用java中的TreeMap,与java进行互操作// 需要引入 import scala.collection.JavaConversions._ 包 可以进行java与scala的相互转换val scalaScores = new util.TreeMap[String,Int]()

 

 

二、Scala中集合

 

所有的集合都扩展于Iterable ,集合分为三大类,分别是序列、集和映射。对于几乎所有的集合类scala都提供了可变和不可变版本。scala列表要么是空的,要么拥有一头一尾,其中尾部本身又是一个列表。集是无先后次序的集合 。使用LinkHashSet来保留插入顺序,或者用SortedSet来按顺序进行迭代

 

    我们以一张图来展示构成Scala集合继承层级最重要的特质

 

scala同时支持可变和不可变的集合,不可变的集合从不改变,因此可以完全安全地共享其引用,甚至在一个多线程的应用程序中也没有问题。举例来说,即有scala.collection.immutable.Map,也有scala.collection.mutable.Map。他们有一个共有的超类 scala.collection.Map (这个类没有定义任何的改值操作)。

scala优先采用不可变集合,scala.collection包中的伴生对象产出不可变的集合。

 

序列

下图展示了最重要的不可变序列

Vector是ArrayBuffer不可变的版本,一个带下标的的序列,​支持快速随机访问。

Range表示一个整数序列。

 

   下图展示了最重要的可变序列

​

 

 

openEuler 20.03 LTS面向RK3399移植系列(3)—openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4) 任务动机:完成openEuler面向RK3399开发板的移植。 任务描述:按照固件烧写准备,固件获取,固件打包和烧写的步骤实现openEuler面向RK3399开发板的移植,整理过程和相关命令记录到文档。 1. 制作openEuler的rootfs.img 1.1 开发环境 树莓派--openEuler系统 openEuler 20.03 LTS 的内测版本镜像,下载。 1.2 具体操作 1.2.1 ssh远程连接树莓派 确定树莓派IP ssh连接 1.2.2 制作rootfs.img 阅读详情

相关推荐

Crazyflie 2.1固件刷写与地址配置全攻略:从开箱到连接Crazyswarm

本文详细介绍了Crazyflie 2.1微型无人机的固件刷写、地址配置及与Crazyswarm系统的集成方法。从开箱检查到多机协同飞行,涵盖了硬件准备、固件刷写、无线电地址修改等关键步骤,帮助用户快速实现集群飞行控制。特别针对Crazyswarm系统集成提供了实用配置示例和调试技巧。

weixin_42530458的博客 405

scala 遍历 java 的 util.Map

Flink 从 Kafka 获取数据进行处理,本来运行的好好的,突然报错:Caused by: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy 具体错误日志如下: Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution faile

Lpy的博客 2502

手把手复现金蝶云星空V8.1文件上传漏洞(附完整POC与修复方案)

本文深度解析金蝶云星空V8.1文件上传漏洞,提供详细的漏洞复现步骤与完整POC,涵盖技术原理、测试环境搭建及验证流程。同时给出多维防护方案,包括官方补丁部署、临时缓解措施和长期安全加固建议,帮助企业有效防范任意文件上传风险。

weixin_30505225的博客 179

scala 的Map[String, Any] 转换为 java 的 util.Map[String, Object]

scala和java集合的转换 相信使用scala和java做混合开发的项目,对于scala和java集合的转换,都是不会陌生的,下面上方法,适用于大部分使用场景。 具体实现 import scala.collection.JavaConverters._ val resMap: Map[String, Any] = Map( "s_t" -> 123456789, "s_h" -> "host_name", "ip" -> "

雾岛与鲸的博客 3109

嵌入式通信协议----Wi-Fi协议详解(一)

Wi-Fi,又称“无线网络”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的无线局域网技术。“Wi-Fi”常写作“WiFi”或“Wifi”,但是这些写法并没有被Wi-Fi联盟认可。Wi-Fi产品经由Wi-Fi联盟的一家独立授权测试实验室进行严格测试,产品成功通过测试后,授予制造商或销售商使用Wi-Fi标志、Wi-Fi CERTIFIED标志和相关商标,Wi-Fi联盟使用术语“Wi-Fi CERTIFIED”来称呼这类通过认证的产品。

聪聪的成长之路 1656

从X86到ARM:将VINS-Fusion-GPU和ego-planner迁移到Jetson Orin-NX时,我踩过的那些‘环境差异’坑

本文详细介绍了将VINS-Fusion-GPU和ego-planner从X86平台迁移到Jetson Orin-NX(ARM架构)时遇到的环境差异问题及解决方案。内容涵盖ARM与X86的架构差异、依赖管理、性能调优和硬件接口适配,特别强调了CUDA在ARM平台上的优化配置和内存访问技巧,帮助开发者高效完成跨平台迁移。

weixin_42647395的博客 119

快学Scala 第七章知识点总结

这章节主要就是说包的问题,其实知识点不是非常的重要。1.与对象或类的定义不同,同一个包可以定义在多个文件当中。2.元文件的目录和报纸剪并没有强制的关联关系。3.可以重命名成员,例如: import java.util.{Hash => JavaHashMap} 这样依赖,JavaHashMap就是java.util.HashMap,而HashMap则对应scala.collection.muta

戴伟要坚持 592

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2976

scala打印HashMap

scala中使用Java的HashMap,如果要打印HashMap时,要加上一句话,就可以遍历HashMap了 import scala.collection.JavaConversions._ val cMap= new util.HashMap[Long,Array[Double]]() cidMap.foreach{ s=> println(s._1,s._2.foreach(println)) } ...

别说话写代码的博客 1338

脑肿瘤MRI图像分割实战:基于U-Net的深度学习完整指南

脑肿瘤是中枢神经系统最常见的疾病之一,全球每年有超过30万人被诊断为原发性脑肿瘤。在临床诊断和治疗过程中,磁共振成像(MRI)已成为评估脑肿瘤的标准影像学检查方法。然而,手动分割MRI图像中的肿瘤区域是一项耗时且依赖于专家经验的工作,不同医生之间可能存在显著差异。

YOLO 150

【汇编实战开发笔记】一段汇编代码如何“反编译”成C代码?

介绍了一种由汇编代码得到C代码的方法

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 1万+

6.scala中的包

版权申明:转载请注明出处。 文章来源:http://bigdataer.net/?p=287 排版乱?请移步原文获得更好的阅读体验 1.基础特性 scala中的包和java中的包类似,都是用来在大型工程中给类限定一个命名空间。有如下特性: (1)包可以像内部类那样嵌套 (2)包路径不是绝对路径。 (3)包声明链net.bigdataer.blog并不会自

coding笔记 379

CST与MATLAB连接设置

打开MATLAB,点击"Set Path"按钮,然后点击"Add Folder"。在CST中,点击"Options"菜单,然后选择"Advanced"选项。在弹出的对话框中,点击"COMSOL"选项卡,并确保"Enable COMSOL"复选框被选中。通过上述步骤和示例代码,你可以开始使用MATLAB与CST进行集成,并根据你的具体需求进行进一步的开发和应用。通过这个简单的示例,你可以开始在MATLAB中与CST进行交互,并根据你的需求进行更复杂的操作,如参数化仿真、优化和数据处理等。

TechPulseZ的博客 1966

Scala 的Map集合

在Scala中,有两种创建Map的方式,分别是Map(k1->v1,k2->v2,..和Map((k1,v1),(k2,v2),...。在Scala中,可以同时使用可变与不可变的Map集合,不可变的直接使用Map,可变的使用mutable.Map。上述创建Map的方式是不可变的, 如果想创建可变的Map,需要导入指定的包,创建方式与不可变的方式相同。Map(映射)是一种可迭代的键值对(Key/Value)结构,所有值都可以通过键来获取,Map中的键都是唯一的。1.Scala的Map的定义。

2301_81748087的博客 1574

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Scala:Map集合的使用

1.声明 当前内容主要用于本人学习和复习,当前内容为使用和测试Map集合 当前内容借鉴:菜鸟教程 Map集合存在两种 可修改的Map:scala.collection.mutable.Map 不可修改的Map:scala.Map 基本上和Set集合差不多 2.共同的操作 1.创建Map集合操作 var 变量=Map() var 变量:Map[k类型,v类型]=Map[k类型,v类型]() var 变量:Map[k类型,v类型]=Map[k类型,v类型](key->value,.....) var

编程学习者的博客 2749

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Scala中List集合与Map集合的相互转换

List集合转换成Map集合 object Demo{ def main(args: Array[String]): Unit = { // 创建一个List集合对象 val list: List[String] = List("dog", "tiger", "lion", "cat", "panther", "eagle") // 映射(转...

qq_44160357的博客 6970

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Scala中Map集合

package Scala // Map 集合操作 // 与java里的 map 是一样的 // 都叫字典索引 // 都是 hash 表数据 object MapTest { def main(args: Array[String]): Unit = { // hashMap // 创建一个 map 集合 // val map01 = Map[String,Int]().empt...

王坤华的博客 315

Scala Map集合的简单使用

package com.miaoli.blogtest import scala.collection.mutable //scala中Map集合的简单使用 object TestMap { def main(args: Array[String]): Unit = { //创建一个空的map val emptyMap = new mutable.HashMap[Stri...

weixin_41791130的博客 524

scala Map集合之间合并

scala 集合之间合并

qq_43192537的博客 1623

scala——Iterable集合、Seq集合、Set集合、Map集合使用示例

1. 掌握Iterable集合相关内容. 2. 掌握Seq集合相关内容. 3. 掌握Set集合相关内容. 4. 掌握Map集合相关内容. 5. 掌握统计字符个数案例.

qq_40585384的博客 2069

scala集合之map方法的使用

统计用户消费排名 简单介绍 map 方法主要是一对一映射,取出集合中的每个元素,执行操作,返回值和集合的类型一致。 要求: 使用 List 集合定义用户的消费信息 根据消费总额,使用集合操作并统计用户消费排名 消费字段包括:用户名,姓名,手机号,消费额等信息。 此处使用的是 scala 语言。 用户数据具体代码如下: var list1=List( ("id"->1,"na...

qq_42111085的博客 2819

Scala集合(List,Map,Array)

List集合 val list=List(1,2,3,4,4) //獲取下標是1的 val res=list(1) println(res) //往list集合中填充数据 List(1,2) val lis = List.range(1,3) //不包括3 for(o <- lis){ print(" "+o) } //ListBu...

徐磊的博客 699

Scala集合——Map

Map集合 不可变: val map01: Map[String, String] = Map(“libai” -> “1”, “litaibai” -> “2”, “litaitaibai” -> “3”) 可变: import scala.collection.mutable val map03 = mutable.Map((“libai”, 1), (“litaibai”, 2), (“litaitaibai”, 2)) object Demo08Map { def main(

xia3138641636的博客 243

Scala集合Set、Map

Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable 。 在 Scala 中集合有可变(mutable)和不可变(immutable)两种类型, immutable 类型的集合初始化后就不能改变了(注意与 val 修饰的变量进行区别)。 不可变 Set 创建不可变 HashSet val set1 = new HashSet[Int]...

攸的博客 207

map集合遍历_Scala学习七之集合了解

Scala有一个非常通用,丰富,强大,可组合的集合库;集合是高阶的(high level)并暴露了一大套操作方法。Scala的所有的集合类都可以在包 scala.collection 包中找到,其中集合类都是高级抽象类或特性Iterable[T] 是所有可遍历的集合,它提供了迭代的方法(foreach)。Seq[T] 是有序集合,Set[T]是数学上的集合(无序且不重复),Map[T]是关联数组,...

weixin_39710179的博客 539

scala map java map_scala中Map集合的简单使用

import scala.collection.mutable/*** Map集合的简单使用*/object MapUse {def main(args: Array[String]): Unit = {// 创建一个空的map -- 注意:这里要用实现类,因为Map是抽象类,使用时需要声明具体实现类val emptyMap = new mutable.HashMap[String,Int]()...

weixin_31649177的博客 412
上一篇: Scala中List与Tuple
下一篇: Scala中类介绍
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值