自定义list使用jdk分页

本文介绍了如何在Java中创建一个Page类用于实现分页功能,包括设置默认值、计算分页信息和获取总页数的方法。Page类适用于处理各种类型的数据列表,简化了分页操作。

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

package com.csdn;


import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

@Data
public class Page<T> {
    private Integer pageNo = 1;
    private Integer pageSize = 10;
    private long total = 0L;
    private int pageCount = 0;
    private List<T> results;

    public Page(Integer pageNo, Integer pageSize, List<T> results) {
        pageNo = Objects.isNull(pageNo) ? this.pageNo : pageNo;
        pageSize = Objects.isNull(pageSize) ? this.pageSize : pageSize;
        List<T> collect = results.stream().skip(pageSize * (pageNo - 1)).limit(pageSize).collect(Collectors.toList());
        this.results = CollectionUtils.isEmpty(results) ? Collections.emptyList() : collect;


        this.pageNo = pageNo;
        this.pageSize = pageSize;
        this.pageCount = CollectionUtils.isEmpty(results) ? this.pageCount : ((results.size() - 1) / (pageSize + 1));
        this.total = CollectionUtils.isEmpty(results) ? this.total : results.size();


    }

    public int getPageCount() {
        Long totalCount = this.total;
        Double pages = Math.ceil(totalCount.doubleValue() / (double) pageSize);
        this.pageCount = pages.intValue();
        return this.pageCount;
    }

}

使用方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值