我想知道一些实用的使用情况(如果它们不相关/依赖于任何编程语言,它会更好)。我可以实际使用的情况下集合,列表和地图相关联。

例如,如果你想一本书的词汇表,其中条款要按照字母顺序列出和位置/页码的价值,你会使用集合TreeMap中(OrderedMap这是一个地图)

不知何故,我不能准多重集与任何“实用”用例。是否有任何用途有人知道吗?

http://en.wikipedia.org/wiki/Multiset 并没有告诉我足够的:)

PS:如果你们认为这应该是社区wiki'ed它是好的。我没有做到这一点是唯一的原因,“有一个明确的目标的方式来回答这个问题。”

有帮助吗?

解决方案

的应用很多。例如,想象一个购物车。可以包含一个项目的一个以上的实例 - 即,2 cpu的,3个图形板等,所以它是一个多集。一个简单的实施方式是也保持每个的项目的数量的轨道 - 即保持周围的信息2 cpu的,3个的图形板等

我相信你能想到很多其他的应用程序。

其他提示

一个多集是在其中否则你有地图很多情况下是有用的。这里有三个例子。

假设你有一个类Foo与访问者的getType(),和你想知道,Foo的实例的集合,有多少每种类型。

同样,一个系统可以执行各种操作,你可以使用一个多重跟踪的多少次发生的每个动作。

最后,确定两个集合是否包含相同的元素,忽略订单,但关注的实例是如何经常重复,只需拨打

HashMultiset.create(collection1).equals(HashMultiset.create(collection2))

在数学式的部分字段,一组被视为用于所有目的多集。例如,在线性代数中,一组矢量的线性扶养测试时teated作为多重集。 因此,这些领域的实现应受益于多集的使用。

您可能会说线性代数是不实际的,但是这是一个完全不同的辩论......

一个购物车是一个多集。你可以把同一个项目的几个实例在购物车,当你想购买多台。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top