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