【问题标题】:Is there a sorted java collection which handles duplicates?是否有处理重复项的排序 Java 集合?
【发布时间】:2010-04-17 12:41:18
【问题描述】:

我需要一个行为类似于 C++ 多重映射的集合,但我还需要能够通过一系列键获取元素。

【问题讨论】:

    标签: java collections multimap sortedlist


    【解决方案1】:

    您可以查看Google Collections。它有多个MultiMap 的实现。

    【讨论】:

    • 特别是。 Google Collections TreeMultimap 类包括一个返回 SortedMap 的 asMap() 方法。然后,您可以调用诸如 SortedMap.subMap() 之类的方法来检索一系列键的映射。
    【解决方案2】:

    Java 中没有内置的多地图集合。为了解决这个问题,您可以将值列表映射到每个键:例如Map<String, List<String>>。否则会有第三方库实现了多图 - here 就是其中之一。

    【讨论】:

      【解决方案3】:

      在 java 中创建多图可排序集合有一个简单的技巧...使用数据集 TreeMap 并为键输入 key*10^4+counter。这样,您将在地图中存储重复的键值(通过添加计数器,它们实际上不是重复的,因此您可以将其存储在 treeMap 中,但您知道不要使用整数键值的最后四位),但是您的数据集是使用您的原始键值进行排序。请注意,根据数据集的大小,您可能需要调整 10^n 以确保它大于数据中的条目数。

      【讨论】:

        猜你喜欢
        • 2013-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-21
        相关资源
        最近更新 更多