java list手动分页

本文介绍了一个简单的Java分页工具实现,该工具通过传入当前页数、每页大小及待分页的数据列表来获取指定页的数据。文章展示了如何创建一个包含100条数据的列表,并演示了如何使用此工具进行分页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值