简体   繁体   English

将null值保存为多个键,其中null具有单个含义

[英]save null values as multiple keys where null has a single meaning

I need a multiple key map and I want to use null values as keys. 我需要一个多键映射,并且我想使用空值作为键。 I am using HashBasedTable which does not allow null keys. 我正在使用不允许空键的HashBasedTable。

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

How can I achieve the same. 我怎么能达到同样的目的。 Please help. 请帮忙。 Thanks 谢谢

You can use a null object , in that case a string which you know is not part of the possible set of strings (eg "Unknown" ): 您可以使用null对象 ,在这种情况下,您知道的字符串不属于可能的字符串集(例如"Unknown" ):

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

You can also use Optional<String> to wrap your keys instead, and then your null object becomes Optional.empty() (or Optional.absent() if you use Guava's Optional ): 您还可以改用Optional<String>来包装密钥,然后您的空对象将变为Optional.empty() (如果使用Guava的Optional则为Optional.absent() ):

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM