跟连乐一起学Scala-映射和元组

本文详细介绍了Scala中的映射(Map)和元组(Tuple)的使用方法,包括构造映射、获取值、更新与删除操作、迭代映射、排序映射等内容,并解释了元组的概念及使用方式。
映射和元组

构造映射

//不可变的Map[String, Int]
val scores = Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)

//可变Map[String, Int]
val scores = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)

//空映射
val scores = new scala.collection.mutable.HashMap[String, Int]

获取映射中的值

val bobScore = scores("Bob")  //获取值
val bobScore = if (scores.contains("Bob")) scores("Bob") else 0
等价于:
val bobsScore = scores.getOrElse("Bob", 0)

更新映射中的值

//更新"Bob"对应的值
scores("Bob") = 12  

//增加数据
scores("Fred") = 7  //一条
scores += ("Bob" -> 10, "Fred" -> 7) //多条

//删除数据
scores -= "Alice"

迭代映射

for((k, v) <- 映射) //处理k和v

scores.keySet //得到所有Key组成的集合

for ((k, v) <- 映射) yield (v, k) //反转

已排序映射

树形映射:

val scores = scala.collection.immutable.SortedMap("Alice" -> 10, "Fred" -> 7, "Bob" -> 3, "Cindy" -> 8)

与Java的相互操作

import scala.collection.JavaConversions.mapAsScalaMap
val scores: scala.collection.mutable.Map[String, Int] = new Java.util.TreeMap[String, Int]  //scala到Java
import scala.collection.JavaConversions.mapAsJavaMap
import java.awt.font.TextAttribute._
val attrs = Map(FAMILY -> "Serif", SIZE -> 12)
val font = new java.awt.Font(attrs)

元组

映射是键/值对偶的集合。
对偶是元组的最简单形态。
元组是不同类型的值的集合。

组成公式:
元组的值是通过将单个的值包含在圆括号中构成。
例子:

val t = (1, 3.14, "Spring")

获取对应的值:

val second = t._2  //或者:
val second = t _2  //即点可以替换为空格

元组的下标是从1开始的,不是从0开始的哦!


拉链操作

val symbols = Array("<", "_", ">")
val counts = Array(2, 10, 2)
val pairs = symbols.zip(counts)

结果:

Array(("<", 2), ("_", 10), (">". 2))

这样做的目的->可以一起被处理

for((s, n) <- pairs) Console.print(s * n)

结果:

<<__________>>
【电动车优化调度】基于模型预测控制(MPC)的凸优化算法的电动车优化调度(Matlab代码实现)内容概要:本文介绍了基于模型预测控制(MPC)的凸优化算法在电动车优化调度中的应用,并提供了Matlab代码实现。该方法结合了MPC的滚动优化特性与凸优化的高效求解能力,用于解决电动车充电调度问题,提升电网运行效率与可再生能源消纳能力。文中还提及多个相关研究方向技术支撑,包括智能优化算法、机器习、电力系统管理等,展示了其在多领域交叉应用的潜力。配套资源可通过提供的网盘链接获取,涵盖YALMIP工具包及其他完整仿真资源。; 适合人群:具备一定电力系统、优化理论及Matlab编程基础的科研人员研究生,尤其适合从事电动汽车调度、智能电网优化等相关课题的研究者。; 使用场景及目标:①实现电动车集群在分时电价或电网需求响应机制下的有序充电调度;②结合可再生能源出力与负荷预测,利用MPC进行多时段滚动优化,降低电网峰谷差,提高能源利用效率;③为术论文复现、课题研究及工程仿真提供可靠的技术路线与代码支持。; 阅读建议:建议读者结合文档中提到的智能优化算法与电力系统背景知识进行系统习,优先掌握MPC基本原理与凸优化建模方法,并下载配套资源调试代码,以加深对电动车调度模型构建与求解过程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值