【发布时间】:2012-07-20 22:48:14
【问题描述】:
我需要向 Guava Multimap 添加一个键,并将一个空集合作为值。我该如何做到这一点?
我试过了:
map.put( "my key", null );
但调用 get() 会返回一个包含一个元素的列表,该元素为空。我通过以下方式解决了这个问题:
map.putAll("my key2", new ArrayList())
但我想知道这是否是一件坏事?我知道 Guava 在删除最后一个值以保持 containsKey() 一致时会自动删除一个键。我最好的选择是什么?
【问题讨论】:
-
你可以告诉我们为什么你觉得你需要让 Multimap 以非预期的方式运行?
-
这只是数据的性质。我有一组键,其中一些具有与之关联的值,而另一些则没有。 (实际的键/值来自数据库)。如果这对 Multimap 来说是一个糟糕的用例,那很好,我愿意接受其他解决方案。此代码中的原始 impl 使用 Map
> 并且切换到 Multimap 似乎很自然。