java对list<Object>进行手动分页实现

作者:枯枫叶 时间:2023-01-13 13:41:01 

该方法使用的jdk1.6以后自带的分页工具类实现

public static void main(String[] args) {
       ArrayList list = new ArrayList<>();
       list.add("Luo");
       list.add("Tian");
       list.add("yan");
       list.add("23");
       list.add("elegant");
       list.add("optimistic");
       list.add("mysterious");
       System.out.println("分页前数据:"+list);

//分页之后
       PageInfo pageInfo = getPageInfo(2, 2, list);
       System.out.println("总大小:"+pageInfo.getTotal());
       System.out.println("当前页:"+pageInfo.getPageNum());
       System.out.println("当前页大小:"+pageInfo.getPageSize());
       System.out.println("当前页数据:"+pageInfo.getList());
   }

public static <T> PageInfo<T> getPageInfo(int currentPage, int pageSize, List<T> list) {
       int total = list.size();
       if (total > pageSize) {
           int toIndex = pageSize * currentPage;
           if (toIndex > total) {
               toIndex = total;
           }
           int totalPage = total % pageSize == 0 ? (total/pageSize) : (total/pageSize)+1;
           if (totalPage < currentPage){
               list = new ArrayList<>();
           }else {
               list = list.subList(pageSize * (currentPage - 1), toIndex);
           }
       }
       Page<T> page = new Page<>(currentPage, pageSize);
       page.addAll(list);
       page.setPages((total + pageSize - 1) / pageSize);
       page.setTotal(total);
       return new PageInfo<>(page);
   }

效果

java对list<Object>进行手动分页实现

来源:https://blog.csdn.net/gelinwangzi_juge/article/details/123129689

标签:java,list<Object>,分页
0
投稿

猜你喜欢

  • Java中字符串String的+和+=及循环操作String原理详解

    2023-05-13 15:10:35
  • 常见JavaWeb安全问题和解决方案

    2023-11-09 01:02:17
  • Android 使用Picasso加载网络图片等比例缩放的实现方法

    2023-08-29 15:36:32
  • Android编程之控件ListView使用方法

    2022-08-12 08:50:03
  • 列举java语言中反射的常用方法及实例代码

    2022-10-31 13:45:07
  • Hibernate用ThreadLocal模式(线程局部变量模式)管理Session

    2021-10-01 18:50:10
  • SpringCloud使用Zookeeper作为配置中心的示例

    2023-08-03 12:30:51
  • SpringMVC+EasyUI实现页面左侧导航菜单功能

    2022-09-30 17:11:01
  • Java JDK与cglib动态代理有什么区别

    2023-07-23 08:10:15
  • C#使用OpenCv图像批处理并改变图片大小并且重命名

    2023-12-20 11:10:29
  • java如何实现字符串中的字母排序

    2021-09-17 14:55:11
  • SpringBoot实现本地文件存储及预览过程

    2022-07-31 05:30:58
  • Android nativePollOnce函数解析

    2022-05-29 01:51:26
  • Android倒计时控件 Splash界面5秒自动跳转

    2023-09-24 18:41:16
  • C#中字符串编码处理

    2023-10-03 09:56:12
  • java简单坦克大战制作代码

    2023-02-07 05:08:37
  • c# wpf使用GMap.NET类库,实现地图轨迹回放

    2023-04-20 06:46:27
  • Java求解两个非负整数最大公约数算法【循环法与递归法】

    2021-10-15 13:53:48
  • Android Spinner和GridView组件的使用示例

    2022-07-01 15:03:40
  • java 输入一个数字组成的数组(输出该数组的最大值和最小值)

    2023-11-24 21:41:58
  • asp之家 软件编程 m.aspxhome.com