Foro de elhacker.net

Programación => Java => Mensaje iniciado por: kinos en 29 Mayo 2010, 22:46 pm



Título: estructura de datos o fichero para guardar strings, que sea rapida la consulta
Publicado por: kinos en 29 Mayo 2010, 22:46 pm
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?


Título: Re: estructura de datos o fichero para guardar strings, que sea rapida la consulta
Publicado por: highfredo en 30 Mayo 2010, 10:43 am
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


Título: Re: estructura de datos o fichero para guardar strings, que sea rapida la consulta
Publicado por: kinos en 1 Junio 2010, 20:32 pm
   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.