2010-03-26 11 views
10

Chciałbym poznać kilka praktycznych przypadków użycia (jeśli nie są powiązane/powiązane z jakimkolwiek językiem programowania, to będzie lepiej). Mogę kojarzyć zestawy, listy i Mapy do praktycznych przypadków użycia.Daj mi praktyczny przypadek użycia zestawu Multi-set

Na przykład jeśli chciałeś słowniczek książce gdzie terminy, które chcesz są wymienione w porządku alfabetycznym oraz szereg lokalizacja/strona jest wartość, należy użyć TreeMap kolekcji (OrderedMap która jest mapą)

Jakoś , Nie mogę powiązać MultiSet z jakimkolwiek "praktycznym" przypadkiem. Czy ktoś wie o jakichkolwiek zastosowaniach?

http://en.wikipedia.org/wiki/Multiset nie mów mi wystarczy :)

PS: Jeśli myślicie powinno to być społeczność wiki'ed to jest w porządku. Jedynym powodem, dla którego tego nie zrobiłem, było: "Istnieje jasny, obiektywny sposób, aby odpowiedzieć na to pytanie".

+0

jak na razie, nie ma odpowiedzi tutaj faktycznie daje dobre wyjaśnienie. Koszyk jest zwykłym słownikiem 'Item -> Count'. Multisety, OTOH, stają się naprawdę użyteczne w kontekstach, gdy dodatkowo wykorzystujemy ich uogólnioną definicję "set union" i "set intersection". – Kos

Odpowiedz

9

Wiele aplikacji. Na przykład wyobraź sobie koszyk na zakupy. Może zawierać więcej niż jedno wystąpienie elementu - np. 2 procesory, 3 karty graficzne itp. Jest to więc zestaw Multi-set. Jedną z prostych implementacji jest także śledzenie liczby elementów każdego z nich - tj. Trzymanie się informacji o 2 procesorach, 3 tablicach graficznych itp.

Jestem pewna, że ​​możesz wymyślić wiele innych aplikacji.

1

W niektórych dziedzinach matematyki zestaw traktowany jest jako multiset do wszystkich celów. Na przykład w Linear Algebra zestaw wektorów jest podawany jako multiset podczas testowania zależności liniowej. W związku z tym implementacje tych pól powinny korzystać z użycia multiset.

Można powiedzieć, algebra liniowa nie jest praktyczne, ale to jest zupełnie inna dyskusja ...

1

koszyk jest MultiSet. Możesz umieścić kilka egzemplarzy tego samego przedmiotu w koszyku, jeśli chcesz kupić więcej niż jeden.

4

Multiset jest przydatny w wielu sytuacjach, w których w przeciwnym razie nie miałbyś mapy. Oto trzy przykłady.

Załóżmy, że masz klasę Foo z accessorem getType(), i chcesz wiedzieć, dla kolekcji instancji Foo, ile z nich ma każdy typ.

Podobnie, system może wykonywać różne akcje, a Ty możesz użyć Multiset, aby śledzić, ile razy każda akcja miała miejsce.

Wreszcie, aby ustalić, czy dwa zbiory zawierają te same elementy, kolejność ignorując ale zwracając uwagę na to, jak często powtarzają się przypadki, wystarczy zadzwonić

HashMultiset.create(collection1).equals(HashMultiset.create(collection2)) 
Powiązane problemy