Я наткнулся на некоторый код Java для поиска префикса в JList.Однако, глядя на это, основа алгоритма довольно неэффективна: используется линейный поиск по списку для каждого нажатия клавиш и медленное преобразование регистра в узком цикле.
Я полагаю, что для очень больших объемов данных реализованное пользователем троичное дерево поиска будет гораздо более эффективным решением.Однако, если кто-то стремился к простому коду и не имел требований к производительности, требующих таких сложностей, есть ли другие более упрощенные способы, которыми этот алгоритм мог бы быть улучшен без необходимости значительного количества дополнительного кода?
for (int i=0; i < jList1.getModel().getSize(); i++) {
String str = ((String)jList1.getModel().getElementAt(i)).toLowerCase();
if (str.startsWith(m_key)) {
jList1.setSelectedIndex(i);
jList1.ensureIndexIsVisible(i);
break;
}
}