我正在使用 trove 库来创建 HashMap
http://trove.starlight-systems.com/
我正在使用的类是 TObjectIntMap,其中我必须使用函数 get。问题是如果两种情况 get 返回 0
1-如果指定键的值为零
2-如果 key 不存在
例如下面的代码
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
现在我的问题是:在这种情况下如何区分零和 Null。他们有办法解决这个问题吗?
试试他们的containsKey方法。如果值返回 0,则使用该方法检查映射是否包含该键 - 如果包含,则该键的值确实为 0。如果不包含,则该键未设置。
我是一名优秀的程序员,十分优秀!