Java HashMap, считайте те же ключевые записи - PullRequest
0 голосов
/ 12 октября 2011

так что я работаю над проектом android, и сейчас я динамически заполняю созданный мной календарь. В настоящее время, когда каждая ячейка динамически генерируется, она открывает базу данных, выполняет вызов для подсчета количества записей на определенную дату, а затем закрывает базу данных.

Это означает, что каждый раз, когда календарь загружается или пользователь меняет месяц, он выполняет как минимум 28, максимум 42 вызовов открытия / закрытия базы данных, чтобы заполнить представление.

Чтобы обойти это, я подумал об использовании хеш-карты, сделать один вызов базы данных, который заполняет курсор, и переместить курсор, вставить его в Hashmap.

Мне кажется, самый простой способ сделать это - использовать отформатированную дату из базы данных в качестве ключа для HashMap, а затем, когда мне нужно узнать, сколько записей, можно ли узнать, сколько записей есть с таким же ключом?

Если нет, то что лучше, моя задняя мысль ...

Переместить курсор, Ключ существует? -> Нет, затем создайте его со значением int, равным единице -> Да, затем увеличьте значение этой записи на 1?

Спасибо, ребята!

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Думаю, я бы изменил свой запрос для группировки по дате, а затем отбросил бы эти результаты в хэш-карте. Итак, если у вас есть таблица событий (это синтаксис оракула)

  select to_char(event.date, 'yyyymmdd'), count(*)
  from event
  group by to_char(event.date, 'yyyymmdd')

Затем вы можете добавить это в хэш-карту или выполнить итерацию по набору результатов.

0 голосов
/ 12 октября 2011

Для получения всех повторяющихся записей просто извлеките ключ List и обработайте его с помощью Set или HashSet Вы можете обратиться к этому вопросу: Java: Обнаружить дубликаты в ArrayList?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...