English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java realiza paginación en ArrayList
resumen
la interacción entre sistemas, generalmente se utiliza la forma de interfaz. Supongamos que el sistema B proporciona una interfaz de consulta por lotes, que limita que solo se pueda consultar50 de datos, mientras que en realidad necesitamos consultar500 de datos, en este momento se puede hacer lo siguiente500 de datos para realizar operaciones por lotes, dividiendo10esta llamada al interfaz de lote del sistema B.
si la interfaz de consulta del sistema B utiliza List como parámetro de entrada, para implementar la llamada por lotes, se puede utilizar el método subList de ArrayList para manejar.
código
definición del método sublist:
List<E> subList(int fromIndex, int toIndex);
sólo hay que calcular correctamente fromIndex y toIndex.
preparación de datos
public class TestArrayList {}} public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L}); } }
algoritmo de paginación
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}); //Total de registros Integer totalCount = datas.size(); //分多少次处理 Integer requestCount = totalCount / PAGE_SIZE; for (int i = 0; i <= requestCount; i++) { Integer fromIndex = i * PAGE_SIZE; //Si el total es menor que PAGE_SIZE, para evitar la desbordamiento del array, toIndex se usa directamente totalCount int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE); List<Long> subList = datas.subList(fromIndex, toIndex); System.out.println(subList); //Cuando el total es menos de una página o justo igual a una página, solo es necesario procesar una vez para salir del bucle for if (toIndex == totalCount) { break; } } } }
Escenario de prueba
1、总数不足一页
2、总数刚好等于一页
3、总数多余一页
Los tres casos anteriores pueden pasar con normalidad.
Gracias por leer, espero que esto pueda ayudar a todos, gracias por el apoyo a nuestro sitio!