Мое понимание Multiset - это набор с частотой, но я всегда могу использовать Map для представления частоты, есть ли другая причина использовать Multiset?
Guava MultiSet против карты?
Ответ 1
Преимущества Multiset<E> над a Map<E, Integer>:
- При добавлении элемента, который еще не находится в коллекции, не требуется специального кода.
- Методы непосредственного обращения к счету элементов:
count(E),add(E, int)и т.д. - Цель кода более понятна. A
Multiset<E>, очевидно, отображает элементы в их числа. AMap<E, Integer>может отображать элементы в произвольные целые числа.
См. также:
Ответ 2
Для меня самая важная точка, которая устанавливает Multiset, кроме Map, состоит в том, что она a Collection: вы просто вкладываете в нее материал, и вы можете получить счет позже. Он концептуально подходит для вариантов использования, для которых он сконструирован там, где Map нет. Для этих случаев использование Map - это просто хак, который вроде-sorta работает нормально, так как Java не предоставил ничего более подходящего.