java list手动分页

package Test;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author csz
 * @date 2018-02-05
 */
public class ListPageUtil {
	/**
	 * 
	 * @param page
	 *            当前页数
	 * @param pageSize
	 *            每页得大小
	 * @param list
	 *            分页的对象
	 * @return
	 */
	private static List<Integer> getListPage(int page, int pageSize, List<Integer> list) {
		if (list == null || list.size() == 0) {
			throw new RuntimeException("分页数据不能为空!");
		}
		
		int totalCount = list.size();
		page = page - 1;
		int fromIndex = page * pageSize;
		//分页不能大于总数
	    if(fromIndex>=totalCount) {
	    	throw new RuntimeException("页数或分页大小不正确!");
		}
		int toIndex = ((page + 1) * pageSize);
		if (toIndex > totalCount) {
			toIndex = totalCount;
		}
		return list.subList(fromIndex, toIndex);

	}

	public static void main(String[] args) {
		// 构造100条数据
		List<Integer> list = new ArrayList<Integer>();
		for (Integer i = 1; i <= 100; i++) {
			list.add(i);
		}

		int page = 1;// 第一页
		int pageSize = 10;// 每页10条

		List<Integer> listPage = getListPage(page, pageSize, list);
		System.out.println("第" + page + "页");
		for (Integer integer : listPage) {
			System.out.println(integer);
		}

		// 测试第10页
		page = 10;
		listPage = getListPage(page, pageSize, list);
		System.out.println("第" + page + "页");
		for (Integer integer : listPage) {
			System.out.println(integer);
		}

		// 测试第11页
		page = 11;
		listPage = getListPage(page, pageSize, list);
		System.out.println("第" + page + "页");
		for (Integer integer : listPage) {
			System.out.println(integer);
		}

	}
}


返回结果:

第1页
1
2
3
4
5
6
7
8
9
10
第10页
91
92
93
94
95
96
97
98
99
100
Exception in thread "main" java.lang.RuntimeException: 页数或分页大小不正确!
	at Test.ListPageTest.getListPage(ListPageTest.java:27)
	at Test.ListPageTest.main(ListPageTest.java:64)

猜你喜欢

转载自blog.csdn.net/chenshuzhuo/article/details/79261538