Trove ライブラリを使用してハッシュ マップを作成しています
http://trove.starlight-systems.com/
私が使用しているクラスは TObjectIntMap で、関数 get を使用する必要がありました。問題は、2 つのケースの場合に 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 ではなくゼロです。
以下のリンクで彼らのドキュメントを確認しましたが、彼らが解決したのは間違いでした. したがって、int を null にすることはできないため、実際には null ではなくゼロを返します。
https://bitbucket.org/robeden/trove/issue/43/incorrect-javadoc-for-tobjectintmapget
今私の質問は次のとおりです。この場合、ゼロとヌルを区別する方法。この問題に対処する方法はありますか。