[英]guava multimap that uses TreeMap not HashMap?
我有类似以下内容:
final SortedMap<Integer,List<Integer>> m = new TreeMap<Integer,List<Integer>>();
而且我想使用google-guava将其制成多图。 但是,我看不到任何提供包含ArrayList的SortedMap的实现。 我只看到HashMap + ArrayList实现(ArrayListMultimap)。 我想要的实现存在吗?
Guava有一个TreeMultimap ,它按排序顺序存储键和值。 但是,这使用TreeSet
来提供值,而不是使用List
因此在这里可能并不是您想要的。 在这种情况下,番石榴允许您创建一个Multimap
的作品,你想用的任何一个方式Multimaps.new*Multimap
方法,如Multimaps.newListMultimap 。 要使它像您所描述的那样工作,只需编写以下代码:
Map<Integer, Collection<Integer>> map = Maps.newTreeMap();
ListMultimap<Integer, Integer> m = Multimaps.newListMultimap(map,
new Supplier<List<Integer>>() {
public List<Integer> get() {
return Lists.newArrayList(); // assuming you want to use ArrayList
}
});
这是创建野兽的方法:
Multimap<Integer,Integer> multimap = Multimaps.newListMultimap(
Maps.<Integer, Collection<Integer>>newTreeMap(),
new Supplier<List<Integer>>() {
public List<Integer> get() {
return Lists.newArrayList();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.