2016-11-30 12 views
0

Мне нужна карта с несколькими ключами, и я хочу использовать нулевые значения в качестве ключей. Я использую HashBasedTable, который не разрешает нулевые ключи.сохранять значения в виде нескольких ключей, где 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

Спасибо Дополнительно работал для меня .. –