Почему в Google Коллекциях нет SortedMultiset?
Вопрос
Коллекции Google содержит Multiset
интерфейс и TreeMultiset
класс, но я был удивлен, обнаружив, что нет соответствующего SortedMultiset
интерфейс.
Что-то подобное было бы очень полезно для моделирования дискретных распределений вероятностей.
Прежде чем я попытаюсь реализовать это сам, я хотел бы знать, есть ли конкретная причина для того, чтобы исключить это, напримервероятное нарушение Multiset
или Collection
инварианты, или присущие им проблемы с производительностью и т.д.
Редактировать:Изначально я этого не осознавал, но на самом деле это 3 отдельных запроса:
- Изменение возвращаемого типа одного метода (
TreeMultiset.entrySet
) - Новый интерфейс, соответствующий существующей функциональности
TreeMultiset
- Новая пара методов для суммирования подсчетов в ветвях дерева
Решение
Я думаю, просто это еще никому не было нужно, поэтому мы его еще не написали.Я бы об этом подумал.
Другие советы
TreeMultiset.elementSet() возвращает SortedSet, который может обеспечить некоторую функциональность, которую вы хотите.
ETA:finnw, запрашиваемые вами методы SortedMultiset не дадут значительно более быстрого ответа на вопрос "сколько элементов в моем мультимножестве меньше 42?" Реализация TreeMultiset по-прежнему должна была бы выполнять итерацию по записям multiset и суммировать количество соответствующих элементов.