Ускорить поиск в базе данных можно создав индекс по тому полю, по которому ищем.
В памяти тоже можно, для этого надо один раз отсортировать список строк (doSort, займёт какое-то время), а потом искать бинарным поиском, т.е. сокращая диапазон в два раза за один цикл, в зависимости от результата сравнения с элементом, стоящим посередине диапазона. Недостаток - либо каждый раз при добавлении нужно сортировать список, либо вставлять (doInsert) в нужное место, которое ищется аналогично.
В принципе, фича достаточно нужная, можно и компонент доделать. Т.е. после сортировки список остаётся отсортированным, даже если делаются doAdd и doInsert, а поиск делается бинарный. Можно и свойство предусмотреть, чтобы после загрузки doLoad список автоматически сортировался.
Ответов: 2125
Рейтинг: 159
|
|||
карма: 1 |
|