如何将Guava Multimap条目存储到Java Util列表中



我遇到了一个要求,为一个键存储多个值,所以我来了解Guava的Multimap

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

List<Map.Entry<String, String>

我是这样做的:

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

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

下面是失败的原因:Error:
java.lang.ClassCastException: com.google.common.collect.AbstractMultimap$4 cannot be cast to java.util.List

我认为通过在Multimap上调用entries()方法返回的Collection不是Java Collections类型。找不到一个确切的方法来完成它。

实现这一目标的正确方法应该是什么??

方法返回类型为Collection。文档没有说返回的集合是List,所以您不应该做这样的假设。

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

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

相关内容