|
1
4
在我的一个问题中向我推荐的是Apache Commons MultiMap: http://commons.apache.org/collections/api-3.2.1/org/apache/commons/collections/MultiHashMap.html
它在内部使用ArrayList,但我想您可以将其更改为使用HashSet之类的东西。我会看看
更新:事实上,Guava的HashMultiMap似乎已经是我所说的: https://github.com/google/guava/blob/master/guava/src/com/google/common/collect/Multimap.java 我查看了源代码,似乎每个值集合实际上都有一个HashSet支持。 |
|
|
2
2
注: Java并发实践清单5.19 :
|
|
|
3
1
我可以向你推荐潜在的候选人。如果它是完全读取的,那么ImmutableMultiMap可能是一个很好的选择。 如果你需要的话 如果有很多行,也可以从使用ConcurrentHashMap和同步列表开始。这可以显著减少争用,这可能足以解决性能问题,而且很简单。 |
|
|
4
1
|
|
|
5
0
当你提到你“在一个大地图上迭代,找出匹配的键”时,我不禁怀疑你是否使用了最好的数据结构。有没有办法避免这种迭代? 请注意,Guava包含多个具有不同性能特征的multimap实现。正如Zwei所提到的,不可变多重映射比可变多重映射具有更好的性能。如果代码检查multimap是否包含特定值,setmultimap会更快;否则,ArrayListMultimap的性能会更好。 |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |