scala – 获取hashmap的方法不返回null
发布时间:2020-12-16 19:12:50 所属栏目:安全 来源:网络整理
导读:这一行:var counter:下面代码中的Integer = jm.get(ls)返回值为0的Integer,它应为null.这是为什么会发生的? 根据文档,如果找不到元素,则HashMap的get方法返回null.下面的代码是计算列表中元素的数量 import scala.collection.JavaConversions._object Tes
这一行:var counter:下面代码中的Integer = jm.get(ls)返回值为0的Integer,它应为null.这是为什么会发生的?
根据文档,如果找不到元素,则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]; 在Map接口中,您使用key作为String,值为Int.因此Int默认值为0. var counter : Integer = jm.get(ls) 所以这里的计数器只能保持0值,因为在计数器中变量值不是Key. jm.get(ls); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容