gpt4 book ai didi

java - 具有良好性能的多重映射

转载 作者:行者123 更新时间:2023-12-03 01:49:30 27 4
gpt4 key购买 nike

在我的代码中,我有一张被大量使用的 map ,在几秒钟内使用了数千次。最初我有一个 TreeMap,但是当测试 9,000 个条目时,我发现我的旧处理器融化了。这需要扩大规模。所以我转向了 HashMap,性能非常出色。

现在我正在改变我的设计并正在寻找 MultiMap。然而,我担心对 get() 端的性能影响,因为它必须迭代所述大映射以挑选出匹配的键,并且当多次调用甚至同步时,它似乎会慢慢来。

是否有一个好的 MultiMap 能够以出色的性能处理如此大的值?性能在此应用程序中至关重要,因为可能有许多大型独立映射处理非常大的工作负载,从而使“小”性能损失成为很大的问题。

如果可以将其提取出来单独工作而无需任何依赖项,则可获得奖励积分。

最佳答案

在我的一个问题中向我推荐的是 Apache Commons MultiMap: http://commons.apache.org/collections/api-3.2.1/org/apache/commons/collections/MultiHashMap.html

它是免费软件,因此您至少可以获取源代码来查看它,并且根据您的许可证情况,您可以修改它或独立使用它。

它在内部使用 ArrayList,但我想你可以将其更改为使用 HashSet 或其他东西。我会查看 createCollection(Collection coll) 方法。

更新:实际上,Guava 的 HashMultiMap 似乎已经是我正在谈论的内容: https://github.com/google/guava/blob/master/guava/src/com/google/common/collect/Multimap.java

我查看了源代码,似乎每个值集合实际上都由 HashSet 支持。

关于java - 具有良好性能的多重映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com