我正在使用 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
现在我的问题是:在这种情况下如何区分零和空值。他们有什么办法解决这个问题。