如果为null Trove,TObjectIntMap.get()返回0

时间:2015-03-02 15:52:33

标签: java null hashmap integer trove4j

我正在使用特洛伊库创建哈希映射

http://trove.starlight-systems.com/ 

我使用的类是TObjectIntMap,其中我必须使用函数get。 问题是如果两个案例

,则返回0

1-如果指定键的值为零

2-如果密钥不存在

例如,在以下代码中

TObjectIntMap<String> featuresMap = new TObjectIntHashMap<String>();

        if(String.valueOf(featuresMap.get("B")) == null)
            System.out.println("NULL");
        else 
            System.out.println("NotNull");


        System.out.println(featuresMap.get("B"));

该程序将打印以下内容

1- NotNull:因为它变为零。虽然关键&#34; B&#34;尚未设定

2- Zero:featuresMap.get(&#34; B&#34;)的返回值为零而不是null。

我在下面的链接中查看了他们的文档,这是他们解决的错误。因此,实际上返回零而不是null,因为int不能为null。

https://bitbucket.org/robeden/trove/issue/43/incorrect-javadoc-for-tobjectintmapget

现在我的问题是:在这种情况下如何区分零和零。他们是否可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

尝试使用containsKey方法。如果值返回0,使用该方法检查映射是否包含密钥 - 如果是,则密钥的值确实为0.如果不是,则不设置密钥。