Я сделал небольшую программу на Java, которая загружает список слов из текстового файла, который выбирает пользователь, и сохраняет его слово за словом в TreeSet. Теперь мне нужно написать функцию, которая всякий раз, когда пользователь вводит что-то в текстовое поле (keyPressed), вызывает функцию и находит/возвращает все слова в этом TreeSet, которые начинаются с букв, введенных пользователем. Я новичок в использовании Наборы, поэтому моим решением будет итерация от первого до последнего элемента в наборе и распечатка тех, которые удовлетворяют критериям:
Iterator <String>itr = dictionary.iterator();
String currentWord;
String tempUserInput = "av"; // Temporary, to simulate user input
while(itr.hasNext()){
currentWord = itr.next();
if (currentWord.startsWith(tempUserInput)) {
System.out.println(currentWord); // Temporary, to simulate output
}
}
Это работает правильно, но, поскольку для возвращаемого значения необходимо передать более 300 000 слов, мой вопрос: есть ли более эффективное решение этой проблемы?