我需要一个多键映射,我想使用空值作为键。我正在使用不允许空键的HashBasedTable。
Table<String, String, JsonObject> table = HashBasedTable.create();
String key1= null, key2= null;
table.put(key1, key2, value);
我怎样才能达到同样的目标。请帮忙。感谢
答案 0 :(得分: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>
来换行密钥,然后您的null对象变为Optional.empty()
(如果您使用Guava的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);