package com.nq.utils; import java.util.Arrays; import java.util.Collections; import java.util.List; public class Pager { /** * 每頁显示條數 */ private int pageSize; /** * 原集合 */ private List data; private Pager(List data, int pageSize) { this.data = data; this.pageSize = pageSize; } /** * 創建分頁器 * * @param data 需要分頁的數據 * @param pageSize 每頁显示條數 * @param 業務對象 * @return 分頁器 */ public static Pager create(List data, int pageSize) { return new Pager<>(data, pageSize); } /** * 得到分頁后的數據 * * @param pageNum 頁碼 * @return 分頁后結果 */ public List getPagedList(int pageNum) { int fromIndex = (pageNum - 1) * pageSize; if (fromIndex >= data.size()) { return Collections.emptyList(); } int toIndex = pageNum * pageSize; if (toIndex >= data.size()) { toIndex = data.size(); } return data.subList(fromIndex, toIndex); } public int getPageSize() { return pageSize; } public List getData() { return data; } public static void main(String[] args) { Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; List list = Arrays.asList(array); Pager pager = Pager.create(list, 10); List page1 = pager.getPagedList(1); System.out.println(page1); List page2 = pager.getPagedList(2); System.out.println(page2); List page3 = pager.getPagedList(3); System.out.println(page3); } }