Tengo este código que determina si una palabra (ignorando el caso) se incluye en un archivo de texto wordList. Sin embargo, el archivo de texto wordList puede tener 65000 ++ líneas, y simplemente buscar una palabra usando mi implementación a continuación toma casi un minuto. ¿Podrías pensar en alguna mejor implementación?Estructura de datos más rápida para buscar una cadena
Gracias!
import java.io.*;
import java.util.*;
public class WordSearch
{
LinkedList<String> lxx;
FileReader fxx;
BufferedReader bxx;
public WordSearch(String wordlist)
throws IOException
{
fxx = new FileReader(wordlist);
bxx = new BufferedReader(fxx);
lxx = new LinkedList<String>();
String word;
while ((word = bxx.readLine()) != null)
{
lxx.add(word);
}
bxx.close();
}
public boolean inTheList (String theWord)
{
for(int i =0 ; i < lxx.size(); i++)
{
if (theWord.compareToIgnoreCase(lxx.get(i)) == 0)
{
return true;
}
}
return false;
}
}
Los espacios son mejores en todos los editores (incluido el área de texto mágico de SO) para las sangrías de las pestañas. –
¿Cuántas palabras distintas hay? –
¿Dónde podemos obtener una larga lista de palabras? Logro simular 15k y me estoy ejecutando bajo un ms – OscarRyz