java - Google Guava TreeMultimap - 根据排序顺序检索值?

标签 java guava treemap

我正在尝试实现一些需要对 <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/

相关文章:

java - 如何指定区域日期格式?

java - 如何在 java 中解析 EDI 837 文件?

java - Google 馆藏供应商和查找

java - 如何遍历 TreeMap?

Java比较两个csv文件

java - 如何将堆栈跟踪错误放入记录器中

互联网上的 Java 套接字

apache-spark - 检测到 Guava 问题 #1635,表明正在使用低于 16.01 的 Guava 版本

java - 我的 ImmutableList 收集器不工作?

highcharts - 在 R 中使用 hctreemap2 创建具有不同颜色的 TreeMap