English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java pagination pour ArrayList
résumé
l'interaction entre systèmes est généralement effectuée sous forme d'interface. Supposons que le système B propose une interface de recherche en lot, limitant à chaque fois la capacité de recherche à50 données, tandis que nous devons effectivement rechercher500 données, à ce moment-là, vous pouvez effectuer500 données pour effectuer des opérations par lots, divisées en10l'appel de l'interface de lot du système B.
si l'interface de recherche du système B utilise List comme paramètre d'entrée, vous pouvez utiliser la méthode subList d'ArrayList pour traiter les appels en lots.
code
définition de la méthode sublist:
List<E> subList(int fromIndex, int toIndex);
il suffit de calculer précisément fromIndex et toIndex.
préparation des données
public class TestArrayList {}} public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L}); } }
algorithme de pagination
import java.util.Arrays; import java.util.List; public class TestArrayList {}} private static final Integer PAGE_SIZE = 3; public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L,8L}); //Nombre total d'enregistrements Integer totalCount = datas.size(); //Diviser en combien de fois traiter Integer requestCount = totalCount / PAGE_SIZE; for (int i = 0; i <= requestCount; i++) { Integer fromIndex = i * PAGE_SIZE; //Si le nombre total est inférieur à PAGE_SIZE, pour éviter les dépassements de tableau, toIndex utilise directement totalCount int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE); List<Long> subList = datas.subList(fromIndex, toIndex); System.out.println(subList); //Lorsque le nombre total est inférieur à une page ou égal à une page, il suffit de traiter une fois pour quitter la boucle for if (toIndex == totalCount) { break; } } } }
Scénario de test
1、Nombre total insuffisant pour une page
2、Nombre total égal à une page
3、Nombre total supérieur à une page
Les trois cas ci-dessus peuvent passer normalement.
Merci de lire, j'espère que cela peut aider tout le monde, merci pour le soutien à ce site !