Necesito incluir aproximadamente 1 MByte de datos en una aplicación Java, para un acceso muy rápido y fácil en el resto del código fuente. Mi formación principal no es Java, así que mi idea inicial era convertir los datos directamente en el código fuente de Java, definiendo 1MByte de matrices constantes, clases (en lugar de struct C++), etc., algo como esto:Gran cantidad de constantes en Java
public final/immutable/const MyClass MyList[] = {
{ 23012, 22, "Hamburger"} ,
{ 28375, 123, "Kieler"}
};
Sin embargo , parece que Java no es compatible con tales construcciones. ¿Es esto correcto? Si es así, ¿cuál es la mejor solución para este problema?
NOTA: Los datos constan de 2 tablas con aproximadamente 50000 registros de datos, que se deben buscar de varias maneras. Esto puede requerir algunos índices más adelante, con más registros significativos, quizás 1 millón de registros, guardados de esta manera. Espero que la aplicación se inicie muy rápido, sin iterar a través de estos registros.
¿Cuál es el formato de datos estándar en Java para esto? –
@Lars: para pares K/V, * clave = valor * en el archivo '.properties' (marque javadoc para la clase' Propiedades'), para las listas solo el cielo es el límite aunque le sugiero que use algo simple que se ajuste tus necesidades. Tal vez XML si lo desea, pero generalmente eso no es realmente necesario. – Esko
@Lars D: Realmente depende de cuáles sean sus necesidades de datos. Los archivos de propiedades están bien para los pares clave/valor, pero pueden no ser muy eficientes si tiene muchos datos numéricos. (Lo mismo se aplica a XML). Hay varias bibliotecas de serialización que pueden facilitarle la vida o simplemente usar su propio formato de datos personalizado. –