2016-11-30 7 views
0

複数のキーマップが必要です。ヌル値をキーとして使用します。 nullキーを許可しないHashBasedTableを使用しています。ヌル値を複数のキーとして保存します。ヌルは単一の意味を持ちます。

Table<String, String, JsonObject> table = HashBasedTable.create(); 
String key1= null, key2= null; 
table.put(key1, key2, value); 

これをどのように達成できますか。助けてください。おかげ

+0

あなたはKEとの最初のマップを持っていますので、あなたはまた、<キー、地図>地図を使用することができますyであり、値は2番目のキーを持つマップです。この場合、1マップにつき1つのヌルキーしか持てません。私はあなたが複数を必要とするかわからない – RudiDudi

答えて

0

あなたはnull objectを使用することができますが、その場合には、あなたが知っている文字列は、文字列の可能な組(例えば"Unknown")の一部ではありません。

Table<String, String, JsonObject> table = HashBasedTable.create(); 
String key1 = MoreObjects.firstNonNull(realKey1, "Unknown"), 
     key2 = MoreObjects.firstNonNull(realKey2, "Unknown"); 
table.put(key1, key2, value); 

あなたはまた、代わりにあなたの鍵をラップするOptional<String>を使用することができます(あなたはグアバのOptionalを使用している場合やOptional.absent())、その後、あなたのnullオブジェクトは、Optional.empty()を次のようになります。

Table<Optional<String>, Optional<String>, JsonObject> table = HashBasedTable.create(); 
Optional<String> key1 = Optional.ofNullable(realKey1), 
     key2 = Optional.ofNullable(realKey2); 
table.put(key1, key2, value); 
+0

ありがとうオプション私のために働いた.. –

関連する問題