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

Пример кода для разбиения ArrayList java на страницы

разбивка java ArrayList на страницы

общее описание

взаимодействие между системами, как правило, происходит в виде интерфейсов. Предположим, что система B предоставляет интерфейс пакетного запроса, ограничивающий возможность запроса 50 данных за один раз, а на самом деле нам нужно запросить 500 данных, в этом случае можно выполнить операцию разбивки на страницы для этих 500 данных, сделав 10 вызовов пакетного интерфейса системы B.

если интерфейс запроса системы B использует List в качестве входного параметра, то для реализации вызова по批次 можно использовать метод subList ArrayList для обработки.

код

определение метода sublist:

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

достаточно точно вычислить fromIndex и toIndex.

подготовка данных

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

алгоритм разбивки на страницы

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});
    //Общее количество записей
    Integer totalCount = datas.size();
    //How many times to process
    Integer requestCount = totalCount / PAGE_SIZE;
    for (int i = 0; i <= requestCount; i++) {
      Integer fromIndex = i * PAGE_SIZE;
      //If the total number is less than PAGE_SIZE, toIndex uses totalCount directly to prevent array out of bounds
      int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE);
      List<Long> subList = datas.subList(fromIndex, toIndex);
      System.out.println(subList);
      //When the total number is less than one page or exactly one page, you can exit the for loop after handling once
      if (toIndex == totalCount) {
        break;
      }
    }
  }
}

Тестовая сцена

1、总数不足一页
2、总数刚好等于一页
3、总数多余一页

Upper three cases can pass normally.

Спасибо за чтение,希望能帮助到大家,谢谢大家对本站的支持!

Основной учебник
Тебе может понравиться