English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java paginação ArrayList
Resumo
A interação entre sistemas, geralmente, é feita por meio de interfaces. Suponha que o sistema B forneça uma interface de consulta em lote, limitando a capacidade de consulta a50 dados, enquanto na verdade precisamos consultar500 dados, neste momento, pode-se fazer isso com os500 dados para operação em lote, dividindo10Esta chamada para a interface em lote do sistema B.
Se a interface de consulta do sistema B usa List como parâmetro de entrada, para implementar chamadas em lote, pode-se usar o método subList da ArrayList para processar.
Código
Definição do método sublist:
List<E> subList(int fromIndex, int toIndex);
Basta calcular corretamente os índices fromIndex e toIndex.
Preparação de dados
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 paginação
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}); //Número total de registros Integer totalCount = datas.size(); //Dividir em quantas vezes para processar Integer requestCount = totalCount / PAGE_SIZE; for (int i = 0; i <= requestCount; i++) { Integer fromIndex = i * PAGE_SIZE; //Se o número total for menor que PAGE_SIZE, para evitar o desbordamento do array, toIndex usa diretamente totalCount int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE); List<Long> subList = datas.subList(fromIndex, toIndex); System.out.println(subList); //Quando o número total for menor que uma página ou exatamente uma página, é necessário sair do loop for com uma única chamada de processamento if (toIndex == totalCount) { break; } } } }
Cenário de teste
1de número total insuficiente para uma página
2de número total exato de uma página
3de número total em mais de uma página
Os três casos acima podem passar normalmente.
Agradecemos a leitura, esperamos que ajude a todos, obrigado pelo apoio ao site!