Дайте мне практический пример использования Multi-set.

StackOverflow https://stackoverflow.com/questions/2524480

  •  22-09-2019
  •  | 
  •  

Вопрос

Я хотел бы знать несколько практических вариантов использования (если они не связаны/не связаны с каким-либо языком программирования, это будет лучше). Я могу связать наборы, списки и карты с практическими вариантами использования.

Например, если вам нужен глоссарий книги, в котором нужные вам термины перечислены в алфавитном порядке, а значением является номер местоположения/страницы, вы должны использовать коллекцию TreeMap(OrderedMap, которая является картой).

Почему-то я не могу связать MultiSets с каким-либо «практическим» вариантом использования.Кто-нибудь знает какие-либо варианты использования?

http://en.wikipedia.org/wiki/Multiset не говорит мне достаточно :)

ПС:Если вы, ребята, считаете, что это должно быть вики-сообществом, это нормально.Единственная причина, по которой я этого не сделал, заключалась в том, что «есть четкий объективный способ ответить на этот вопрос».

Это было полезно?

Решение

Множество приложений.Например, представьте себе тележку для покупок.Он может содержать более одного экземпляра элемента, т.е.2 процессора, 3 видеокарты и т. д.Итак, это мульти-набор.Одной из простых реализаций является отслеживание количества элементов каждого из них, т.е.держите под рукой информацию о 2 процессорах, 3 видеокартах и ​​т. д.

Я уверен, что вы можете придумать множество других приложений.

Другие советы

Мультинабор полезен во многих ситуациях, в которых в противном случае у вас была бы карта.Вот три примера.

Предположим, у вас есть класс Foo с аксессором getType(), и вы хотите знать, сколько экземпляров Foo имеет каждый тип.

Точно так же система может выполнять различные действия, и вы можете использовать Multiset, чтобы отслеживать, сколько раз произошло каждое действие.

Наконец, чтобы определить, содержат ли две коллекции одни и те же элементы, игнорируя порядок, но обращая внимание на то, как часто экземпляры повторяются, просто вызовите

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

В некоторых областях математики набор для всех целей рассматривается как мультимножество.Например, в линейной алгебре набор векторов рассматривается как мультимножество при проверке линейной зависимости.Таким образом, реализации этих полей должны выиграть от использования мультимножеств.

Вы можете сказать, что линейная алгебра непрактична, но это совсем другой спор...

Корзина покупок — это мультинабор.Вы можете поместить несколько экземпляров одного и того же товара в корзину, если хотите купить более одного.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top