scala - 组合 MAP 的键和值
问题描述
我正在尝试解决一个问题,我的结果格式为 Map[String, (Double,Double)]。
我想知道有没有办法将它转换为 Map[String, Double,Double] 因为我想按字符串对其进行排序?
更具体地说,我想将其排序如下:
("A1", (7.8,9.2))
("A2", (4.2,44.3))
("A11", (9,54.1))
如果我要使用 SortedMap 我会得到类似的东西:
("A1", (7.8,9.2))
("A11", (9,54.1))
("A2", (4.2,44.3))
这不是预期的结果。
PS:我想将地图转换为适当的格式,以便我可以申请:
sortBy((x:String)=>(x.substring(1).toInt))
非常感谢
解决方案
据我了解,您想按键对地图进行排序。你可以这样做
val inputMap = Map(
A1->(7.8,9.2),
A11-> (9,54.1),
A2-> (4.2,44.3)
)
val outputMap = inputMap.toSeq.sortBy(_._1.split("A")(1).toInt).toList
println(outputMap) //List((A1,(7.8,9.2)), (A2,(4.2,44.3)), (A11,(9,54.1)))
前提是密钥始终具有与 A+number ex 相同的格式。“A5”有效 AA1 无效。
如果您希望您的答案作为元组(键,值)列表,您可以执行 outputMap.toSeq 或 toList。
推荐阅读
- flutter - 如何在 Flutter web 中隐藏“Bearer token”?
- javascript - 为什么不一样?(JS)
- postgresql - 在 PostgresSql 中,如何删除值包含撇号的行?
- ethereum - 如何区分ERC20和ERC721?
- javascript - 为什么我无法输出元素的控制台信息?
- python - 如何修复我的 pyinstaller .exe 找不到 matplotlib 文件的错误?
- c - 如何在 C 中使用 strtok 将 C 字符串拆分两次?
- css - 材质 UI DatePickerRange
- json - 嵌套结构的自定义编码
- c# - 如何解决索引超出数组内部范围的问题?