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

 更新时间:2022年07月26日 10:38:27   作者:枯枫叶  
本文主要介绍了java对list<Object>进行手动分页实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

该方法使用的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>进行手动分页实现的文章就介绍到这了,更多相关java list<Object>手动分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java构造函数示例(构造方法)

    java构造函数示例(构造方法)

    这篇文章主要介绍了java构造函数示例(构造方法),需要的朋友可以参考下
    2014-03-03
  • 从内存方面解释Java中String与StringBuilder的性能差异

    从内存方面解释Java中String与StringBuilder的性能差异

    我们通常会发现使用StringBuffer或StringBuilder创建出来的字符串在拼接时回避String要来得快,尤其是StringBuilder,本文就从内存方面解释Java中String与StringBuilder的性能差异,需要的朋友可以参考下
    2016-05-05
  • 实战分布式医疗挂号系统登录接口整合阿里云短信详情

    实战分布式医疗挂号系统登录接口整合阿里云短信详情

    这篇文章主要为大家介绍了实战分布式医疗挂号系统登录接口整合阿里云短信详情,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2022-04-04
  • Java 删除文件及文件夹删除不了的解决

    Java 删除文件及文件夹删除不了的解决

    这篇文章主要介绍了Java 删除文件及文件夹删除不了的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中API的使用方法详情

    Java中API的使用方法详情

    这篇文章主要介绍了Java中API的使用方法详情,指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用,需要的朋友可以参考下
    2022-04-04
  • Java文件快速copy复制实例代码

    Java文件快速copy复制实例代码

    这篇文章主要给大家介绍了关于Java文件快速copy复制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java NIO 中 Selector 解析

    Java NIO 中 Selector 解析

    这篇文章主要介绍了Java NIO 中 Selector,Selector即选择器,选择器提供选择执行已经就绪的任务的能力即为翻译为多路复用,下面文章对Selector详细介绍内容,需要的小伙伴可以参考一下
    2022-02-02
  • Java8新特性详解与实战分享

    Java8新特性详解与实战分享

    Java 8作为Java语言的一个重要更新,引入了一系列新特性,这些特性不仅提高了代码的可读性和可维护性,还增强了程序的性能,本文将详细介绍Java 8中的几个关键使用技巧,并通过代码案例来展示它们的应用,需要的朋友可以参考下
    2024-06-06
  • 浅谈Java编程中的synthetic关键字

    浅谈Java编程中的synthetic关键字

    这篇文章主要介绍了浅谈Java编程中的synthetic关键字的相关内容,包括其简单的介绍和实例,需要的朋友可以了解下。
    2017-09-09
  • Java开发中解决Js的跨域问题过程解析

    Java开发中解决Js的跨域问题过程解析

    这篇文章主要介绍了Java开发中解决Js的跨域问题过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论