Извините за мой плохой английский. Я постараюсь как можно проще объяснить мою проблему;
Я делаю приложение-клиент на одном веб-сайте. Нет социальной сети, но с блогами.
Теперь мое приложение загрузки 50 сообщений на каждый запрос со следующей информацией:
Производительность ArrayList в Java Android
Название, Автор, Тип почт, Link
Они хранятся в ArrayList таким образом:
Title1, Author1, Type1, Link1, Title2, Author2, Type2, Link2 ... Title50, Author50, Type50, Link50
Итак, у меня есть 4 * 50 = 200 элементов в arraylist.
(Пожалуйста, обратите внимание, что этот ArrayList используется при разборе веб-страницы). В будущем я хочу сохранить дополнительную информацию, такую как данные публикации, количество понравлений, ссылку на аватар и т. Д. Насколько мне известно, 50 сообщений потребуют ~ 600-800 элементов в ArrayList.
Боюсь, что это существенно снизит производительность моего приложения для Android.
Итак, вопрос: Как вы будете рекомендовать хранить проанализированные данные?
Заранее спасибо.
Я покажу некоторый код, чтобы объяснить проблему лучше:
В процессе анализа веб-страницы с Jsoup я делаю следующее вещь:
post_data = new ArrayList<String>();
for (Element e : entries) {
post_data.add(e.select("title").text()); // title
post_data.add(e.select("author name").text()); // author
post_data.add(e.select("category").attr("term").toString()); // type
Elements links_int = e.select("link");
for (Element g : links_int) {
if (g.attr("rel").toString().equals("self")) {
post_data.add(g.attr("href").toString()); // post link (if there's one)
} else { continue;
}
}
Сразу после страница обрабатывается, я заполнить мои данные scructure под названием «элементы» (и что структура данных используются для формирования ListView):
for (int i = 0; i < (post_data.size()); i += 4) {
items.add(new WhatsNew_post_Item(
WhatsNew.this.post_data.get(i),
WhatsNew.this.post_data.get(i + 1),
WhatsNew.this.post_data.get(i + 2),
WhatsNew.this.post_data.get(i + 3)));
}
Вы хотите, чтобы информация сохранялась постоянно или временно? – Kakarot
«Боюсь, что это существенно снизит производительность моего приложения для Android». Ты это пробовал? 800 элементов довольно мало для ArrayList. Нет смысла «бояться» проблем с производительностью без * тестирования *. Я бы гораздо больше беспокоился о вашем представлении данных - похоже, у вас должен быть 'ArrayList', где каждый 'Post' содержит заголовок, автора, тип и ссылку ... а не 4 элемента в' ArrayList ' за сообщение. –
Кроме того, в вашем случае, если вы знаете, что вы получите около 50 сообщений, вы можете инициализировать свой arraylist размером 50, чтобы избежать ненужного времени, чтобы развернуть arraylist, когда он станет полным: Список posts = new ArrayList (50) ; –
Kakarot