多重映射 vs 多值映射 - Hazelcast

3

使用MultiMap和Map of Collection有什么区别?换句话说,Hazelcast中的Multimap是如何工作的?这可能有助于回答使用其中一个与另一个之间的取舍问题。

备注:我了解Map和MultiMap之间的区别。问题在于Multimap和Map of Collection之间的区别。

2个回答

2
在Hazelcast中,使用一个集合的映射不是一个好主意。

因为您实际上拥有一个到真实映射的代理,在此映射的“值”中修改集合将不会反映在映射的其他代理中。

使用集合的映射将要求您管理不同线程更新代理映射之间的锁定和并发。

这将需要您遵循以下流程:

"lock" -> "get" -> update the value -> "unlock" methods of the IMap interface locking the key of the collection you wish to update.

1
根据定义,Multimap 指的是每个输入都与至少一个输出相关联。相反,Map 只对应于另一个值中的一个值。

Multimap:

Multimap

收集的地图

enter image description here

请查看维基百科上的多值函数:http://en.wikipedia.org/wiki/Multivalued_function


谢谢,但这仍然没有回答哪一个(Multimap、Map if List)更好,为什么? - Sandeep Jindal
1
并不是一个比另一个更好,它们有不同的用途。如果你想将唯一的键与唯一的值关联起来,就像一个字典一样,那么使用 Map of List。如果你想将一个键与多个值关联起来(成为一组值),那么使用 Multimap 并且可以让一个键拥有多个值。 - Luke SpringWalker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接