List集合的分页

把需要分页的数据,用list集合封装好,然后进行分页,分页的方法如下:

 

package com.coolma.admin.util;

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

/**
 * @ClassName ListPaging
 * @Decription List集合分页方法
 * @AUTHOR dingguoxue
 * @Date 2019/8/28 16:59
 * @Version 1.0
 **/
public class ListPaging{

    /**
     * 数据集合的分页方法,根据传入总共的数据跟页码,返回页码所需要显示多少条的数据
     * <BR/>采用泛型的方法,即为,list中为什么类型的数据就返回什么类型的数据
     * @param f        带有需要进行分页的数据集合
     * @param pageNo   第几页
     * @param dataSize 显示多少条数据
     * @return 进过分页之后返回的数据
     */
    public static <F> List<F> datepaging(List<F> f, int pageNo, int dataSize) {
        /*
         * 经过测试发现当pageNo为0或者小于时,也就是第0页时,程序会报错,所以需要处理一下pageNo的值
         *
         * 先进行空值的判断,避免程序出现null异常
         *
         * 当pageNo的值小于等于0时,我们让它的值为1
         */
        //参数的校验
        if (f == null) {//当传入过来的list集合为null时,先进行实例化
            f = new ArrayList<F>();
        }
        if ((Object) pageNo == null) {//当传入过来的pageNo为null时,先进行赋值操作
            pageNo = 1;
        }
        if ((Object) dataSize == null) {//当传入过来的dataSize为null时,先进行赋值操作
            dataSize = 1;
        }
        if (pageNo <= 0) {
            pageNo = 1;
        }

        //记录一下数据一共有多少条
        int totalitems = f.size();
        //实例化一个接受分页处理之后的数据
        List<F> afterList = new ArrayList<F>();
        /*
         * 进行分页处理,采用for循环的方式来进行处理
         *
         * 首先for循环中,i应该从哪里开始:i应该从 (当前是第几页 -1 乘以 条数) 开始
         *
         * 然后for循环应该到哪里结束,也就是i应该小于:判断(开始的索引+显示条数)是不是大于总条数,如果大于就是总条数,如果小于就是(开始的索引+显示条数)
         *
         * 然后让i++
         */

        for
        (int i = (pageNo - 1) * dataSize;
         i < (((pageNo - 1) * dataSize) + dataSize >
                 totalitems ? totalitems : ((pageNo - 1) * dataSize) + dataSize);
         i++) {
        //然后将数据存入afterList中

            afterList.add(f.get(i));
        }

        //然后将处理后的数据集合进行返回
        return afterList;
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值