返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java list 分页(多种方式)
  • 849
分享到

Java list 分页(多种方式)

java开发语言list 2023-09-08 19:09:17 849人浏览 安东尼
摘要

Java list 分页(多种方式) 方式一: public static void fenye(List list,int pagesize){ int totalcount=list.size(); int pagecou

Java list 分页(多种方式)

方式一:

public static  void fenye(List list,int pagesize){    int totalcount=list.size();    int pagecount=0;    int m=totalcount%pagesize;    if  (m>0){        pagecount=totalcount/pagesize+1;    }else{        pagecount=totalcount/pagesize;    }    for(int i=1;i<=pagecount;i++){        if (m==0){            List subList= list.subList((i-1)*pagesize,pagesize*(i));            System.out.println(subList);        }else{            if (i==pagecount){                List subList= list.subList((i-1)*pagesize,totalcount);                System.out.println(subList);            }else{                List subList= list.subList((i-1)*pagesize,pagesize*(i));                System.out.println(subList);            }        }    }}List list=new ArrayList();for(int i=1;i<52;i++){    list.add(i);}fenye(list,10);

方式二:

public  List> splitList(List list, int pageSize)    {        int listSize = list.size();        int page = (listSize + (pageSize - 1)) / pageSize;        List> listArray = new ArrayList>();        for (int i = 0; i < page; i++)        {            List subList = new ArrayList();            for (int j = 0; j < listSize; j++)            {                int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize;                if (pageIndex == (i + 1))                {                    subList.add(list.get(j));                }                if ((j + 1) == ((j + 1) * pageSize))                {                    break;                }            }            listArray.add(subList);        }        return listArray;    }

方式三:

public SearchResult paging(List list, int pageNumber, int pageSize) throws Exception{        List pageList = new ArrayList();        int currIdx = (pageNumber > 1 ? (pageNumber -1) * pageSize : 0);        for (int i = 0; i < pageSize && i < list.size() - currIdx; i++){            T listNew = list.get(currIdx + i);            pageList.add(listNew);        }        SearchResult searchResult = new SearchResult();        searchResult.setList(pageList);        searchResult.setTotal(list.size());        if (searchResult.getTotal()%pageSize == 0){            searchResult.setPages((int)searchResult.getTotal()/pageSize);        }else {            searchResult.setPages((int)searchResult.getTotal()/pageSize + 1);        }        searchResult.setPageNum(pageNumber);        searchResult.setPageSize(pageSize);        searchResult.setSize(pageList.size());        //是否是第一页        if (pageNumber == 1){            searchResult.setIsFirstPage(true);        }else {            searchResult.setIsFirstPage(false);        }        //是否是最后一页        if ((searchResult.getTotal() - pageNumber*pageSize) > 0){            searchResult.setIsLastPage(false);        }else {            searchResult.setIsLastPage(true);        }        return searchResult;    }

方式四:

List list = new ArrayList<>();        list.add(1);        list.add(2);        list.add(3);        list.add(4);        list.add(5);                int page = 2;//相当于pageNo-------分页中的pi        int count = 20;//相当于pageSize-------分页中的ps        int size = list.size();        int pageCount=size/count;        int fromIndex = count * (page - 1);        int toIndex = fromIndex + count;        if (toIndex >= size) {            toIndex = size;        }        if(page>pageCount+1){            fromIndex=0;            toIndex=0;        }                System.out.println(list.subList(fromIndex, toIndex));

例子:

rckqMonthlyList为一个list        if (rckqMonthlyList.size() <= 0) {            map.put("totalPage", 1);            map.put("pageIndex", 1);            map.put("pageSize", query.getPs());            map.put("totalRow", 0);            map.put("hasNext", false);            map.put("list", rckqMonthlyList);            return new ApiResult().success(map);        }        //有数据时        //计算总页数        Integer totalPage = rckqMonthlyList.size() / query.getPs();//        if (rckqMonthlyList.size() % query.getPs() > 0) {//           totalPage++;//        }        int fromIndex = query.getPs() * (query.getPi() - 1);        int toIndex = fromIndex + query.getPs();        if (toIndex >= rckqMonthlyList.size()) {            toIndex = rckqMonthlyList.size();        }        if(query.getPi()>totalPage+1){            fromIndex=0;            toIndex=0;        }        Boolean hasNext = query.getPi() != totalPage;        map.put("totalPage", totalPage);        map.put("pageIndex", query.getPi());        map.put("pageSize", query.getPs());        map.put("totalRow", rckqMonthlyList.size());        map.put("hasNext", hasNext);        map.put("list", rckqMonthlyList.subList(fromIndex,toIndex));        return new apiResult().success(map);

来源地址:https://blog.csdn.net/fangzhen1111/article/details/131109297

--结束END--

本文标题: Java list 分页(多种方式)

本文链接: https://lsjlt.com/news/400517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java list 分页(多种方式)
    Java list 分页(多种方式) 方式一: public static void fenye(List list,int pagesize){ int totalcount=list.size(); int pagecou...
    99+
    2023-09-08
    java 开发语言 list
  • Java 8中List转Map的多种方式
    首先创建两个实体类 @Datapublic class Student { //学号 private String no; //姓名 private String name;}@Datapublic class...
    99+
    2023-09-01
    java spring
  • java中List分页的几种方法介绍
    目录1.根据入参带分页参数进行sql查询分页2.对所有list根据分页参数分页3.PageHelper分页1.根据入参带分页参数进行sql查询分页 Criter...
    99+
    2024-04-02
  • Java中Elasticsearch实现分页方式(三种方式)
    目录ES 简介ES 的特点:一、from + size 浅分页二、scroll 深分页scroll删除三、search_after 深分页ES 简介 Elasticsearch 是一...
    99+
    2024-04-02
  • mysql分页的几种方式
    mysql 分页有四种方法:1. limit 子句(指定起始行和行数);2. offset 子句(指定行偏移量和行数);3. 子查询(使用一个查询筛选另一个查询);4. 游标(逐行遍历数...
    99+
    2024-08-01
    mysql
  • java中实现分页的常见几种方式
    文章目录 1. 前言2. 先说结论3. 例子1. 数据库SQL的限制条件(limit、fetch)2. 使用List集合的截取功能实现3. 插件PageHelper 1. 前言 无论是...
    99+
    2023-08-31
    mybatis java 分页 数据库 PageHelper
  • java中List分页的方法有哪些
    本篇内容介绍了“java中List分页的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.根据入参带分页参数进行sql查询分页&n...
    99+
    2023-06-21
  • Java 数组转List的四种方式小结
    目录第一种方式(未必最佳):使用ArrayList.asList(strArray)第二种方法(支持增删查改):第三种方式(通过集合工具类Collections.addAll()方法...
    99+
    2024-04-02
  • 详解mybatis三种分页方式
    目录前言一、Limit分页二、RowBounds分页(不推荐使用)三、Mybatis_PageHelper分页插件总结:前言 分页是我们在开发中绕不过去的一个坎!当你的数据量大了的时...
    99+
    2022-11-13
    mybatis分页
  • Java中List分片的5种方法小结
    目录简介 1.Google Guava 2.apache commons 3.Hutool 4.JDK 5.自定义分片 总结 前些天在实现 MyBatis 批量插入时遇到了一个问题,...
    99+
    2024-04-02
  • Java中Mybatis分页查询的四种传参方式
    目录一、顺序传参 1. 持久层接口方法2. UserMapper.xml映射文件新增标签3. 新增测试方法4. 运行结果二、@param传参 1. 持久...
    99+
    2023-05-13
    Java Mybatis分页查询 Mybatis分页查询 Mybatis传参方式
  • 分享Java多线程实现的四种方式
    以下四种方式: 1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3...
    99+
    2024-04-02
  • Java中List分片方式详细解析
    目录前言1、Google的Guava组件方式2、Apache的commons组件方式3、国产的Hutool组件方式4、JDK8的Stream流方式5、自定义方式前言 在日常开发中,经...
    99+
    2024-04-02
  • SqlServer 多种分页方式 详解(含简单速度测试)
    目录SQLServer分页方式1.Offset and Fetch 方式分页2.row_number() 方式分页3.row_number()变种4.not in/top方式分页5.not exists方式分页6.max...
    99+
    2022-12-16
    SqlServer 分页方式 SqlServer 分页
  • Java 中的 Lambda List 转 Map 的多种方法详解
    目录故事背景公共代码方式一(partitioningBy 分两组)方式二(groupingBy 分多组)方式三(toMap 自定义<Key, Value>)故事背景 我们...
    99+
    2024-04-02
  • Mybatis分页的4种方式实例
    数组分页 查询出全部数据,然后再list中截取需要的部分。 mybatis接口 List<Student> queryStudentsByArray(); xml配置文件...
    99+
    2024-04-02
  • Java List 按指定条件排序的几种方式
      在 Java 项目中,可能会遇到给出一些条件,将 List 元素按照给定条件进行排序的情况。如下述场景。 一、排序场景   List 保存着一组乱序排列的字符串,Map 中保存着该组字符串各自的优...
    99+
    2023-08-31
    java
  • 分析java中全面的单例模式多种实现方式
    目录一、单例模式的思想二、单例模式的 N 种实现方式2.1、饿汉式(线程安全,可用)2.2、常量式(线程安全,可用)2.3、懒汉式(线程不安全,并发场景不可用)2.4、同步的懒汉式?...
    99+
    2024-04-02
  • SQL有几种方式来实现分页
    SQL有几种方式来实现分页,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  在绝大多数的应用中,返回大量的符合条件的记录是司空...
    99+
    2024-04-02
  • Mybatis分页查询——四种传参方式
    目录 相关导读 一、顺序传参 1. 持久层接口方法 2. UserMapper.xml映射文件新增标签 3. 新来源地址:https://blog.csdn.net/qq_53317005/article/details/129849030...
    99+
    2023-08-31
    java maven mybatis mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作