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

java ArrayList 페이지네이션 예제 코드

java ArrayList을 페이지로

개요

시스템 간의 상호작용은 일반적으로 인터페이스 형식으로 사용됩니다. B 시스템이 배치 쿼리 인터페이스를 제공하면, 각 번호에 대해 쿼리할 수 있는 제한이 있습니다.50개 데이터가 있지만, 우리가 실제로 확인해야 할500개 데이터, 이 때는 이500개 데이터를 배치 작업으로, 분10번 호출 B 시스템의 배치 인터페이스.

B 시스템의 쿼리 인터페이스가 List를 인자로 사용하는 경우, 배치 호출을 구현하려면 ArrayList의 subList 메서드를 사용할 수 있습니다.

코드

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();
    //몇 번 처리할 것인가요
    Integer requestCount = totalCount / PAGE_SIZE;
    for (int i = 0; i <= requestCount; i++) {
      Integer fromIndex = i * PAGE_SIZE;
      //총 갯수가 PAGE_SIZE보다 적을 때, 배열 범위 초과를 방지하기 위해 toIndex는 totalCount를 직접 사용합니다
      int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE);
      List<Long> subList = datas.subList(fromIndex, toIndex);
      System.out.println(subList);
      //총 갯수가 한 페이지 미만이거나 정확히 한 페이지에 맞을 때, for 루프를 한 번만 처리하여 종료할 수 있습니다
      if (toIndex == totalCount) {
        break;
      }
    }
  }
}

테스트 시나리오

1총 갯수가 한 페이지에 부족합니다.
2총 갯수가 한 페이지에 정확히 맞습니다.
3총 갯수가 한 페이지를 초과합니다.

위 세 가지 케이스는 모두 정상적으로 통과됩니다.

읽어주셔서 감사합니다. 많은 도움이 되길 바랍니다. 여러분의 사이트 지원에 감사합니다!

추천 항목