Creo que la respuesta corta es no, no hay equivalente obvio.
La clase boost multi-index está muy fuertemente modelada, lo que no es fácilmente traducible en Java. Hay genéricos, pero no son para nada iguales. (How are Java generics different from C++ templates? Why can't I use int as a parameter?).
Entonces, sin plantillas, ¿cómo sería la clase multi-índice?
Imagino que tendría su clase de datos, p. Persona, que contiene miembros de índice como una implementación de Mapa. En este punto, usted tiene opciones:
- añadir un poco de "índices" directamente a la clase Persona (como algunos tablas hash) y escribe las operaciones de búsqueda funciones. Administre la sincronización del índice dentro de la clase Persona .
- Escribir una clase de "IndexProvider" que desacopla la funcionalidad índice por completo de la persona - tendría que ser capaz de crear dinámicamente diferentes tipos de índices y me imagino que lo haría sincronización de mango a través de devoluciones de llamada.
- Algunos mezcla de 1) y 2) - al igual que una clase base abstracta para funcionalidad índice , que no desacoplar adecuadamente el comportamiento, pero proporciona algunas reutilización de código.
Creo que, en la mayoría de los casos 1) es el más fácil de escribir, más fácil de mantener y es probablemente el más eficiente. 2) parece una sobreingeniería.
La otra opción, si tiene muchas estructuras de datos que necesitan indexación, es almacenarlas en una base de datos.
puede ser una exageración (de ahí comentario), ¿ha considerado una base de datos integrada para esto? Hay muchos DBs livianos que puede incrustar y ejecutar en la memoria, supongo que depende de sus requisitos de rendimiento ... – Nim