2016-11-30 39 views
0

我需要一個多鍵映射,並且我希望使用空值作爲鍵。我正在使用不允許空鍵的HashBaseTable。將空值保存爲多個鍵,其中null具有單一含義

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

我該如何做到這一點。請幫忙。由於

+0

你也可以使用一個Map <鑰匙,地圖>所以你將有一個科的第一張地圖y,並且該值是帶有第二個鍵的映射,在這種情況下,每個映射只能有一個空鍵。我不知道你是否需要多個 – 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.empty()(或Optional.absent()如果使用番石榴的Optional):

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

謝謝選擇爲我工作.. –

相關問題