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

Esempio di codice di paginazione di ArrayList in java

Java pagina ArrayList

Sintesi

L'interazione tra sistema e sistema è solitamente in forma di interfaccia. Supponiamo che il sistema B fornisca un'interfaccia di ricerca batch, che limita a 50 dati la query per volta, mentre abbiamo bisogno di query 500 dati, in questo caso possiamo fare operazioni di batch sui 500 dati, chiamando l'interfaccia batch del sistema B 10 volte.

Se l'interfaccia di ricerca del sistema B utilizza List come parametro di ingresso, per implementare chiamate batch, si può utilizzare il metodo subList di ArrayList per gestire.

Codice

Definizione del metodo sublist:

  List<E> subList(int fromIndex, int toIndex);

È sufficiente calcolare correttamente fromIndex e toIndex.

Preparazione dei dati

public class TestArrayList {
  public static void main(String[] args) {
    List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L});
  }
}

Algoritmo di paginazione

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});
    //Numero totale di record
    Integer totalCount = datas.size();
    //Quante volte processare
    Integer requestCount = totalCount / PAGE_SIZE;
    for (int i = 0; i <= requestCount; i++) {
      Integer fromIndex = i * PAGE_SIZE;
      //Se il numero totale è inferiore a PAGE_SIZE, per prevenire l'overflow dell'array, toIndex utilizza direttamente totalCount
      int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE);
      List<Long> subList = datas.subList(fromIndex, toIndex);
      System.out.println(subList);
      //Quando il numero totale è inferiore a PAGE_SIZE o uguale a una pagina, è sufficiente eseguire una volta per uscire dal ciclo for
      if (toIndex == totalCount) {
        break;
      }
    }
  }
}

Scena di test

1、Il numero totale è inferiore a una pagina
2、Il numero totale è uguale a una pagina
3、Il numero totale supera una pagina

I tre casi sopra possono passare normalmente.

Grazie per la lettura, spero di essere stato utile, grazie per il supporto al nostro sito!

Ti potrebbe interessare