Существует два основных подхода.
наиболее эффективный - это сделать разбиение на страницы в базе данных. Вам нужно будет реализовать что-то вроде этого:
public long countMyData(..query params..);
public Object[] loadMyDataPage(..query params.., long startIndex, long count);
Имея эти два метода, вы затем сделать элементы управления страницы на странице на основе количества результатов от countMyData(). Когда пользователь выбирает новую страницу, вы получаете данные для этой страницы только с помощью loadMyDataPage() с правильным значением startIndex и count.
Вы также хотите убедиться, что запрос относительно «устойчивый» - результат будет в основном таким же, когда он называется время от времени. Самый простой способ сделать это - убедиться, что вы сортируете результат на что-то разумное - как дата темы для форума или что-то в этом роде. В противном случае предметы будут «прыгать».
Второй подход - это просто загрузить все в один прием и сохранить его в кеше, а затем отобразить оттуда. Проблема в том, что она очень расточительна, особенно если она уникальна для каждого посетителя, поэтому вам нужно быть осторожным, чтобы не тратить всю память, если вы попытаетесь сделать это таким образом.
Этот вопрос зависит от базы данных - если вы не хотите выбирать все, а затем просто предоставляете избранный подсписк из 10, что выполнимо, но нецелесообразно. – MetroidFan2002