加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读