如何在Guava的Multimap(使用asMap())中使用NavigableMap功能?

时间:2014-03-28 17:54:04

标签: java collections guava multimap

让我们假设我有这样的事情:

Multimap<Integer, Integer> data = TreeMultimap.create();

如何在数据上使用.headMap()?我想,TreeMultimap.asMap()是要走的路。

文档(link)说,TreeMap.asMap()返回NavigableMap<K,Collection<V>>,但我无法让它发挥作用。

NavigableMap<Integer, ArrayList<Integer>> test = data.asMap(); // type mismatch
SortedMap<Integer, ArrayList<Integer>> test = data.asMap(); // type mismatch

我做错了什么?

谢谢!

PS:我正在使用番石榴16

1 个答案:

答案 0 :(得分:2)

data的类型为Multimap,而不是TreeMultimap。此外,NavigableMap<Integer, Collection<Integer>>NavigableMap<Integer, ArrayList<Integer>>不兼容。

将您的代码更改为:

TreeMultimap<Integer, Integer> data = TreeMultimap.create();
NavigableMap<Integer, Collection<Integer>> test = data.asMap();