Когда мне понадобилось реализовать ярлыки для Java «как в веб-два-ноль», гугление не помогло найти ни одной библиотеки, содержащей в себе подобный тип коллекции. Решил сделать сам. Итак, нам надо хранить объекты в коллекции данного типа (назовем его, скажем, LabelsMultiMap). Как объекты, так и ярлыки могут быть произвольного типа. Количество ярлыков сверху не ограничено, равно как и количество объектов. Одним и тем же набором ярлыков могут быть описаны более 1 объекта. У одного объекта один ярлык может встретиться только 1 раз. Пример валидных ярлыков:
Коллекция должна позволять:
1. _put()_ — помещать в неё объекты со списком прикрепленных меток
2. _getValues()_ — возвращать объекты, содержащиеся в коллекции
3. _findValues()_ — осуществлять поиск объектов, ярлыки которых содержат запрашиваемый набор ярлыков
4. _findValuesOnlyIn()_ — осуществлять поиск только тех объектов, все ярлыки которых входят в запрашиваемый набор ярлыков
[Читать дальше →][1]
[1]:
http://habrahabr.ru/post/270461/#habracut