gpt4 book ai didi

Scala,让我的循环更实用

转载 作者:行者123 更新时间:2023-12-04 16:18:19 25 4
gpt4 key购买 nike

我试图减少我像 Java 一样编写 Scala (2.8) 的程度。这是我遇到的问题的简化。您能否对我的“功能更强大”的解决方案提出改进建议?

变换 map

val inputMap = mutable.LinkedHashMap(1->'a',2->'a',3->'b',4->'z',5->'c')

通过丢弃任何值为 'z' 的条目并在遇到字符时对其进行索引

第一次尝试
var outputMap = new mutable.HashMap[Char,Int]()
var counter = 0
for(kvp <- inputMap){
val character = kvp._2
if(character !='z' && !outputMap.contains(character)){
outputMap += (character -> counter)
counter += 1
}
}

第二次尝试(没有好多少,但使用不可变映射和“foreach”)
var outputMap = new immutable.HashMap[Char,Int]()
var counter = 0
inputMap.foreach{
case(number,character) => {
if(character !='z' && !outputMap.contains(character)){
outputMap2 += (character -> counter)
counter += 1
}
}
}

最佳答案

更好的解决方案:

inputMap.toList.filter(_._2 != 'z').map(_._2).distinct.zipWithIndex.toMap

关于Scala,让我的循环更实用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4540831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com