#android #sqlite #cursor #android-cursoradapter
#Android #sqlite #курсор #android-cursoradapter
Вопрос:
У меня есть курсор, отсортировавший огромные данные. Теперь я хочу выполнить двоичный поиск по курсору. Но вызов moveToPosition(int position)
метода занимает много времени, что добавляет огромное время для двоичного поиска. Я хочу выполнять двоичный поиск несколько раз, поэтому вместо того, чтобы запрашивать каждый раз в sqlite
базе данных, нужно запрашивать один раз и выполнять двоичный поиск каждый раз. Как я могу выполнить быстрый двоичный поиск по отсортированному курсору данных?
Комментарии:
1. Не похоже, что доступно больше опций, поэтому вместо того, чтобы делать это с помощью курсора, попробуйте скопировать свои данные в список и выполнить поиск там.
2. Но копирование данных в список займет много памяти.
3. Это не то, для чего предназначены курсоры. Почему вы не выполняете поиск в базе данных?
4. Я ищу диапазон списка строк каждый раз, когда пользователь вводит текстовое поле. Если я буду искать каждый раз в базе данных, это замедлит поиск. Поэтому я хочу выполнять запрос один раз, выполняя двоичный поиск каждый раз.
5. вы должны отпустить один из них. выберите время или пространство. если вы помните, пространство и время обратно пропорциональны. если хотите сэкономить время, используйте список. если пробел, попробуйте каждый раз запрашивать базу данных. почему бы вам не создать адаптер курсора и не добавить фильтр в свой адаптер. хотя это может быть вашим ответом.