18 Stimmen

Nennen Sie mir einen praktischen Anwendungsfall von Multi-set

Ich würde gerne ein paar praktische Anwendungsfälle kennenlernen (wenn sie nicht mit einer Programmiersprache verbunden sind, ist es besser), und ich kann Sets, Lists und Maps mit praktischen Anwendungsfällen in Verbindung bringen.

Wenn Sie z. B. ein Glossar eines Buches erstellen möchten, in dem die gewünschten Begriffe alphabetisch aufgelistet sind und eine Orts-/Seitenzahl den Wert darstellt, würden Sie die Sammlung TreeMap(OrderedMap, die eine Karte ist) verwenden.

Irgendwie kann ich MultiSets nicht mit einem "praktischen" Anwendungsfall in Verbindung bringen. Kennt jemand einen Anwendungsfall?

http://en.wikipedia.org/wiki/Multiset sagt mir nicht genug :)

PS: Wenn ihr der Meinung seid, dass dies in ein Community-Wiki aufgenommen werden sollte, ist das in Ordnung. Der einzige Grund, warum ich es nicht getan habe, war: "Es gibt einen klaren objektiven Weg, diese Frage zu beantworten".

12voto

Larry Watanabe Punkte 9916

Es gibt viele Anwendungen. Stellen Sie sich zum Beispiel einen Einkaufswagen vor. Dieser kann mehr als eine Instanz eines Artikels enthalten - z.B. 2 CPUs, 3 Grafikkarten, usw. Es handelt sich also um einen Multi-Satz. Eine einfache Implementierung besteht darin, auch die Anzahl der einzelnen Elemente zu verfolgen - d.h. die Information 2 CPUs, 3 Grafikkarten, usw.

Ich bin sicher, Sie können sich viele andere Anwendungen vorstellen.

4voto

Jared Levy Punkte 1936

Ein Multiset ist in vielen Situationen nützlich, in denen Sie sonst eine Map verwenden würden. Hier sind drei Beispiele.

Angenommen, Sie haben eine Klasse Foo mit einem Accessor getType(), und Sie möchten für eine Sammlung von Foo-Instanzen wissen, wie viele von ihnen jeden Typ haben.

Ähnlich könnte ein System verschiedene Aktionen durchführen, und Sie könnten ein Multiset verwenden, um zu verfolgen, wie oft jede Aktion aufgetreten ist.

Um schließlich festzustellen, ob zwei Sammlungen dieselben Elemente enthalten, wobei die Reihenfolge ignoriert wird, aber darauf geachtet wird, wie oft Instanzen wiederholt werden, rufen Sie einfach

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

1voto

M.A. Hanin Punkte 7876

In einigen Bereichen der Mathematik wird eine Menge für alle Zwecke als Multiset behandelt. In der linearen Algebra beispielsweise wird eine Menge von Vektoren als Multimenge behandelt, wenn auf lineare Abhängigkeit getestet wird. Daher sollten Implementierungen in diesen Bereichen von der Verwendung von Multisets profitieren.

Sie können sagen, dass lineare Algebra nicht praktisch ist, aber das ist eine ganz andere Debatte...

1voto

Ein Einkaufswagen ist ein MultiSet. Sie können mehrere Instanzen desselben Artikels in einen Einkaufswagen legen, wenn Sie mehr als einen Artikel kaufen möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X