English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exemplo de código de paginação do ArrayList java

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!

Você também pode gostar