estructura de datos o fichero para guardar strings, que sea rapida la consulta

Iniciado por kinos, 29 Mayo 2010, 22:46 PM

0 Miembros y 1 Visitante están viendo este tema.

kinos

Hola, estoy buscando una forma de guardar muchos strings y a la hora de insertar uno nuevo debo saber si ya está dentro. Debe ser rápido. Los string pueden tener una longitud de hasta 256 caracteres.

   Utilizaba un hashSet pero cuando son muchisimos el Heap de java dirá que hay un stack overflow.

   Por esa razón necesito guardarlo en un archivo o varios, hacer una combinación de estructura de datos con fichero o algo similar que sea rápido.

Había pensado en guardar el código hash del string por un lado y el string en otro. A la hora de insertar un nuevo string generar un hash, compararlo con los hash que hay y si no está se inserta, en caso contrario no lo inserta.

¿qué puedo utilizar?

highfredo

lo unico que se me ocurre es guardar los strings en distintos archivos,

ej:
archivo1 -> string que empiecen de la A a la C
archivo2 -> de la D a la E
etc

kinos

   Ya se cómo dices. Hice eso para otra cosa. Pero no me sirve porque si los string empiezan por algo similar no consigues reducir las busquedas o inserciones en nada.

   Lo que me ha gustado que he visto por ahí es una implementación de hashmap con archivo (FileHashMap).

   Lo que hace es guardar las claves en memoria y los valores los guarda en un archivo. Realmente lo que guarda es una clase que contiene el valor, la posición en el archivo y el tamaño del objeto.

Otra solución sería usar una base de datos que sería lo mas correcto.