gpt4 book ai didi

scala - hashmap 的 get 方法不返回 null

转载 作者:行者123 更新时间:2023-12-04 12:41:30 27 4
gpt4 key购买 nike

此行:var counter : Integer = jm.get(ls)在下面的代码中,当它应该为空时返回一个值为 0 的整数。为什么会发生这种情况?

根据文档,如果未找到元素,HashMap 的 get 方法将返回 null。下面的代码是计算列表中元素的数量

import scala.collection.JavaConversions._

object Tester {

def main(args: Array[String]) {


var listOfLinks : java.util.Set[String] = new java.util.TreeSet[String]
listOfLinks.add("1")
listOfLinks.add("1")
listOfLinks.add("1")
listOfLinks.add("2")
listOfLinks.add("3")
listOfLinks.add("3")
listOfLinks.add("3")
listOfLinks.add("3")

var l: java.util.List[String] = new java.util.ArrayList[String]
var jm: java.util.Map[String, Int] = new java.util.HashMap[String, Int];

for (ls <- listOfLinks) {
var counter : Integer = jm.get(ls)
if (counter == null) {
jm.put(ls, 1)
} else {
counter = counter + 1
jm.put(ls, counter)
}
}

for(jmv <- jm){
println(jmv._1+" , "+jmv._2)
}
}

}

最佳答案

 var jm: java.util.Map[String, Int] = new java.util.HashMap[String, Int];

在 Map 界面中,您使用的 key 为 字符串 值为 国际 .所以 国际默认值为 0。
    var counter : Integer = jm.get(ls)

所以这里的计数器只能保存 0 值,因为计数器变量中的值不是 Key。
  jm.get(ls);

关于scala - hashmap 的 get 方法不返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18014374/

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