Я думаю, короткий ответ: нет, нет никакого очевидного равнозначны.
Класс повышения мультииндекса очень сильно затенен, что не так легко перевести на Java. Есть дженерики, но они совсем не то же самое. (How are Java generics different from C++ templates? Why can't I use int as a parameter?).
Итак, без шаблонов, как выглядит класс с несколькими индексами?
Я предполагаю, что у вас будет свой класс данных, например. Человек, содержащий членов индекса, например, реализацию карты. На данный момент, у вас есть выбор:
- Добавить некоторые «индексы» непосредственно класс Person (как некоторые HashTables) и писать функции просмотра Количество. Управление индексом синхронизация в пределах Лица класс.
- Напишите «IndexProvider» класс , что разъединяет функциональность индекса полностью от лица - он должен был бы быть в состоянии динамически создавать различные индексные типов, и я предположил бы, что вы бы синхронизацию рукоятки через обратных вызовов.
- Некоторые смеси из 1) и 2) - как абстрактный базовый класс для функциональности индекса , не правильно отвязать поведение, но дает некоторое повторное использование кода.
Я думаю, что в большинстве случаев 1) проще всего писать, проще всего поддерживать и, пожалуй, наиболее результативно. 2) кажется чрезмерной инженерией.
Другой вариант, если у вас много структур данных, требующих индексации, заключается в их хранении в базе данных.
может быть избыточна (следовательно комментарий), Вы рассмотрели встроенный DB для этого? Есть много легких DB, которые вы можете встроить и запустить в памяти, я думаю, это зависит от ваших требований к производительности .... – Nim