首页 > 其他分享 >传入一个List集合,返回分页好的数据

传入一个List集合,返回分页好的数据

时间:2024-01-21 23:11:39浏览次数:24  
标签:totalPage 分页 pageSize int List 集合 currentPage public

传入一个List集合,返回分页好的数据。

定义分页信息类:

package com.cn.common;

import java.util.List;

public class CommonPage<T> {

    private int currentPage;

    private int totalPage;

    private int pageSize;

    private java.util.List<T> list;


    public CommonPage (int currentPage, int totalPage, int pageSize, List<T> list) {
        this.currentPage = currentPage;
        this.totalPage = totalPage;
        this.pageSize = pageSize;
        this.list = list;
    }

    public CommonPage() {
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }
}






给出总的List和页数,每页大小获取指定页数的数据。

 public CommonPage<User> getPage(int pageNo,int pageSize,List<User> users){
        //总页数
        int totalCount = users.size();

        // 计算分页数
        int pageCount = (totalCount + pageSize - 1) / pageSize;

        //计算从List中的开始索引
        int startIndex = (pageNo - 1) * pageSize;

        //计算从List中的结束索引
        int endIndex = Math.min(startIndex + pageSize, totalCount);

        //返回空
        if (startIndex >= endIndex) {
            return new CommonPage<User>(pageNo,totalCount,pageSize,Collections.emptyList());
        }
        //返回指定页数的数据
        return new CommonPage<User>(pageNo,totalCount,pageSize,users.subList(startIndex, endIndex));
    }

标签:totalPage,分页,pageSize,int,List,集合,currentPage,public
From: https://www.cnblogs.com/cyqf/p/17978668

相关文章

  • List组件和Grid组件的使用
    简介在我们常用的手机应用中,经常会见到一些数据列表,如设置页面、通讯录、商品列表等。下图中两个页面都包含列表,“首页”页面中包含两个网格布局,“商城”页面中包含一个商品列表。上图中的列表中都包含一系列相同宽度的列表项,连续、多行呈现同类数据,例如图片和文本。常见的列......
  • 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
    快速对比两个list数据集合此文引用csdn:https://blog.csdn.net/Zhu_daye/article/details/104798410小批量、快速对比两个list数据集合usingSystem.Linq.Expressions;Main();voidMain(){//对比源集合varsource=GenerateStudent(1,10000,1000);//......
  • Stream toList不能滥用以及与collect(Collectors.toList())的区别
    StreamtoList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查1.背景在公司看到开发环境突然发现了UnsupportedOperationException报错,想到了不是自己throw的应该就是操作collection不当。发现的确是同事使用了类似stringL......
  • Java将字符串转为list数组
    将字符串转为list数组的实现方法概述在Java开发中,有时候我们需要将一个字符串转换为一个列表数组,以便对其中的元素进行操作和处理。本文将介绍一种常见的实现方法,并提供详细的步骤和示例代码来帮助你完成这个任务。实现步骤下面是实现将字符串转为list数组的一般步骤,你可以按照......
  • shiro实现用户踢出,在线用户列表展示功能,包含常见踩坑集合、代码下载
    功能描述:用户a登录了s账号,接着用户b也登录了s账号,此时用户a将被踢出。一个账号只能一个人登录,被别人登录了,那么你就要被踢下线。本文目录shiro认证与授权理解实现需求核心以下是实现shiro用户踢出KickOutListener(登录成功后加入业务逻辑)kickOutFilter(进入controller的初级验证)配置......
  • 解决latex在使用lstlisting环境时的Undefined control sequence.错误
    错误描述,如题,Undefinedcontrolsequence.\begin{lstlisting},查了不少的资料,起始就是一句话,缺了宏包的导入。先看代码:\documentclass[11pt,a4paper]{ctexart}\usepackage{listings}%插入代码要引入的宏包\author{gsc}\title{sample}\lstset{columns=fixed,......
  • `/etc/apt/sources.list` 文件和 `/etc/apt/sources.list.d` 目录介绍
    Debian是一款广泛使用的Linux发行版,它使用apt软件包管理工具来处理软件包的安装、升级和删除。apt管理软件包的工作依赖于一个或多个软件仓库(repository),这些仓库定义在/etc/apt/sources.list文件以及/etc/apt/sources.list.d/目录下的文件中。/etc/apt/sources.list文......
  • SQLServer 分页查询
    SQLServer分页查询方式TOP子句--每页20条记录,第1页selecttop20*fromtceshiorderbyID--第2页(返回ID不是前20条记录)selecttop20*fromtceshiwhereIDnotin(selecttop20IDfromtceshiorderbyID)orderbyIDROW_NUMBER语法[ROW_NUMBER()O......
  • trick 集合
    trick集合1.基础判断是否\(\foralli\)有\(x<a_i\):转化为是否\(x<\min(a_i)\)。大于类似。P9868&题解,ABC223F&题解括号序列:是括号序列的条件:总共的左括号和右括号数量相等;任意前缀的左括号数量\(\ge\)右括号数量。若将序列中左括号看作......
  • Linked list reversal using stack【1月19日学习笔记】
    点击查看代码//Linkedlistreversalusingstack#include<iostream>#include<stack>//stackfromstandardtemplatelibrary(STL)usingnamespacestd;structnode{ chardata; node*next;};node*A;//全局头指针voidreverse(){ if(A==NULL)return;//空......