使用TreeMap而不是HashMap的番石榴multimap?
我有类似以下内容:
final SortedMap<Integer,List<Integer>> m = new TreeMap<Integer,List<Integer>>();
我想使用 google-guava 使其成为多重地图。但是,我没有看到任何提供包含 ArrayList 的 SortedMap 的实现。我只看到HashMap+ArrayList实现(ArrayListMultimap)。我想要的实现存在吗?
I have something like the following:
final SortedMap<Integer,List<Integer>> m = new TreeMap<Integer,List<Integer>>();
And I'd like to use google-guava to make this a multimap. However I don't see any implementation that provides a SortedMap holding an ArrayList. I only see HashMap+ArrayList implementation (ArrayListMultimap). Does the implementation that I want exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Guava 有一个 TreeMultimap 按排序顺序存储键和值。但是,这使用
TreeSet
作为值而不是List
,因此它可能不是您想要的。在这种情况下,Guava 允许您使用Multimaps.new*Multimap
方法之一创建一个以任何您想要的方式工作的Multimap
,例如 Multimaps.newListMultimap。要使一个像您所描述的那样工作,您只需编写以下内容:Guava has a TreeMultimap that stores both keys and values in sorted order. However, this uses a
TreeSet
for the values rather than aList
so it may not quite be what you want here. In that case, Guava allows you to create aMultimap
that works any way you want using one of theMultimaps.new*Multimap
methods, such as Multimaps.newListMultimap. To make one that works like you describe, you'd just write this:以下是创造这只野兽的方法:
Here's how you can create that beast: