Я думаю, что короткий ответ - нет, очевидного эквивалента нет.
Мультииндексный класс boost очень сильно шаблонизирован, что нелегко перевести на Java. Есть дженерики, но они совсем не одинаковые. ( Чем дженерики Java отличаются от шаблонов C ++? Почему я не могу использовать int в качестве параметра? ).
Итак, без шаблонов, как будет выглядеть многоиндексный класс?
Я полагаю, у вас будет ваш класс данных, например Person, содержащий элементы индекса, такие как реализация Map. На данный момент у вас есть выбор:
- Добавить некоторые "индексы" непосредственно в
класс Person (как у некоторых
Hashtables) и написать поиск
функции. Управление индексом
синхронизация внутри человека
класс.
- Написать класс IndexProvider
что разъединяет индекс
функциональность полностью от человека -
это должно быть в состоянии
динамически создавать разные индексы
типы, и я думаю, вы бы
обрабатывать синхронизацию через
Обратные вызовы.
- Некоторая смесь 1) и 2) - как
абстрактный базовый класс для индекса
функциональность, которая не
правильно отделить поведение, но
действительно обеспечивает некоторое повторное использование кода.
Я думаю, что в большинстве случаев 1) легче всего писать, легче поддерживать и, вероятно, наиболее эффективно. 2) кажется чрезмерным.
Другой вариант, если у вас много структур данных, которые нуждаются в индексации, это сохранить их в базе данных.