我正在尝试实现一些需要对 <Destination -> Quantity>
的值进行排序的东西 map ,如:
<San Francisco -> 10, Seattle -> 20, LA -> 10}
这些值不一定是不同的。我希望能够检索具有最大和最小值的键/值对,类似于 TreeMap 对键的操作。
我发现了 Google Guava 的 TreeMultimap,它是 Multimap 的实现,其键和值按其自然顺序或提供的比较器排序。问题是,TreeMultimap 似乎没有任何方法可以让我根据键或值的顺序检索键/值对(例如 pollFirstEntry()
在 TreeMap 中所做的)。
就这一点而言,我对如何使 TreeMultimap 获得此功能有点困惑。我觉得它应该有效,也许这只是我如何实例化对象的问题?
最佳答案
TreeMultimap
我相当确定,不会以您正在寻找的方式支持这一点。
你可以做的是 TreeMultimap<Integer, String>
-- 交换键和值的角色 -- 然后 TreeMultimap.asMap().lastEntry()
会给你一个Map.Entry<Integer, Collection<String>>
,对应最大Integer
和所有String
与之相关。
TreeMultimap
绝对不支持一件事。将所有键的组合值视为单个排序集合。 (当然,您可以将它们视为未排序集合,带有 values()
。)
关于java - Google Guava TreeMultimap - 根据排序顺序检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200121/