Это недостаточно подробно.Мы не знаем, если: - разрешено несколько тегов для каждого элемента - разрешено несколько элементов для каждого тега
Я собираюсь найти самое широкое решение, где оба они верны.Первое, что вам нужно, это ваш класс Tag (я предлагаю перечисление)
public enum Tag {
TAG1, TAG2, TAG3; // add your tags here
}
Тогда вашей коллекцией будет карта, ключом которой является ваш объект, и значением вашего списка тегов для каждого объекта.
Map<Object, List<Tag>> items = new HashMap<Object, List<Tag>>();
Конечно, вы можете заменить «Tag» на String, если вы хотите разрешить любой тег, а не только известные теги.
И в зависимости от того, что вы хотите сделать со своей коллекцией,вы можете захотеть отменить это:
Map<Tag, List<Object>> = new HashMap<Tag, List<Object>>();
Я предлагаю сначала написать свои тестовые наборы (юнит-тесты) с указанием ваших спецификаций, и дизайн вашей коллекции будет органично отображаться из них (TDD).