1

我正在使用 trove 库来创建哈希图

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

我使用的类是 TObjectIntMap,我必须在其中使用函数 get。问题是如果有两种情况,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:因为它变为零。虽然“B”键尚未设置

2- 零: featuresMap.get("B") 的返回为零而不是 null。

我在下面的链接中检查了他们的文档,他们解决了一个错误。所以 get 实际上返回零而不是 null,因为 int 不能为 null。

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

现在我的问题是:在这种情况下如何区分零和空值。他们有什么办法解决这个问题。

4

1 回答 1

1

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

于 2015-03-02T15:55:08.383 回答