如何将Guava Multimap条目存储到Java Util List中?

时间:2016-06-25 17:38:04

标签: java

我遇到了为单个密钥存储多个值的要求,所以我开始了解Guava的Multimap

现在在我的代码中需要检索键:值 K: V[],在这种情况下,值将是一个数组,因为我将相同键的多个值存储到列表中为:

List<Map.Entry<String, String>

以下是我尝试完成的方法:

List<Map.Entry<String, String>> mapCall = (List<Map.Entry<String, String>>) multimap.entries();

上面的代码应该返回Collection List,每个Entry<String, String>

以下是失败的原因:错误:

java.lang.ClassCastException: com.google.common.collect.AbstractMultimap$4 cannot be cast to java.util.List

我认为通过调用Collection上的entries()方法返回的Multimap不属于Java Collections类型。无法找到完成它的确切方法。

实现这个目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

方法返回类型是Collection。该文档并未说明返回的集合是List,因此您不应该做出这样的假设。

如果您确实需要List,请将返回集合的元素复制到新列表中:

List<Map.Entry<String, String>> mapCall = new ArrayList<>(multimap.entries());