第一次来这里,所以我希望这是有道理的!
我有一个映射,其中包含一个字符串作为键,一个字符串列表作为值。我需要遍历地图中每个列表中包含的所有值。
所以,首先我想获得密钥,它有效:
Set<String> keys = theMap.keySet();
这会返回一个包含我所有密钥的集合。伟大的 :)
这就是我陷入困境的地方——网络上的大多数信息似乎都假设我希望从键返回的值是一个简单的字符串或整数,而不是另一个集合,或者在这种情况下是一个列表。我尝试了 theMap.values()
但这没有用,我尝试了 forloop / for:eachloop,但都没有成功。
谢谢大家!
原文由 cmdrbob 发布,翻译遵循 CC BY-SA 4.0 许可协议
这确实是“正常”的方式。或者,如果您也需要钥匙…
也就是说,如果您有选择权,您可能会对 Guava 的
ListMultimap
感兴趣,它很像Map<K, List<V>>
,但具有更多功能 - 包括Collection<V> values()
这与您要求的完全一样,将多图中的所有值“展平”到一个集合中。 (披露:我为番石榴做出了贡献。)