java对list集合进行分页的四种写法总结

 更新时间:2025年05月24日 09:13:01   作者:codingPower  
这篇文章主要介绍了java对list集合进行分页的四种写法总结,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java对list集合进行分页的写法

假设有一个list数组,因为总数过大,在进行查询或者调用外部接口时,需要对其进行分页处理,可以用以下几种方式进行处理

eq:

List<String>  bigList=Lists.newArrayList("a","b","c","d","e","f","g","h");

1. subList分页【java.util.List.sublist(int fromIndex,int toIndex)】

 int pageSize=3;//每页大小
 int count=bigList.size();//总list
 int totalPage=(int)((count/pageSize)+(count % pageSize >0?1:0));//总页数
 for(int i=1;i<=totalPage;i++){
 	List<String> smallList=bigList.sublist(pageSize*(i-1),Math.min(pageSize*i,count));//截取对应范围数据
 	System.out.println(smallList.toString());
 }

2. partition分页【com.google.com.collect.Lists.partition(List list,int size) 】

int pageSize=3;//每页大小
List<List<String>> partitionList=Lists.partition(bigList,pageSize);//进行分页
for(List<String> smallList:partitionList){
	System.out.println(smallList.toString());
}

3. java8 stream流 分页

  
 int pageSize=3;//每页大小
 int count=bigList.size();//总list
 int totalPage=(int)((count/pageSize)+(count % pageSize >0?1:0));//总页数
 // 使用 Stream 实现分页
 	for(int i=1;i<=totalPage;i++){
        List<String> smallList= bigList.stream()
                .skip(PageSize*(i-1)) // 跳过前 PageSize*(i-1) 个元素
                .limit(pageSize)    // 限制结果数量为 pageSize
                .collect(Collectors.toList()); //结果为列表
         System.out.println(smallList.toString());
        }

4. hutool工具类提供的方法ListUtil.split(List list,int size)

实际内部实现还是subList分页

int pageSize=3;//每页大小
List<List<String>> splitList=ListUtil.split(bigList,pageSize);//bigList 需处理的列表,pageSize分页长度
for(List<String> smallList:splitList){
	System.out.println(smallList.toString());
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 教你实现Java接口防刷

    教你实现Java接口防刷

    有些人会恶意提交,本文主要介绍了教你实现Java接口防刷,通过在一定时间内限制同一用户对同一个接口的请求次数,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Java中ArrayList类的使用方法

    Java中ArrayList类的使用方法

    ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,下面来简单介绍下
    2013-12-12
  • 解决IDEA报错war exploded is not valid问题

    解决IDEA报错war exploded is not valid问题

    在使用IntelliJ IDEA时遇到'[projectname]warexploded'无效的问题,可以通过清除项目列表、重新导入项目和配置新的Tomcat来解决,确保在Tomcat配置中,将ApplicationContext修改为仅包含一个'/',这一方法或许能帮助遇到相似问题的开发者
    2024-09-09
  • Java中的ReentrantLock使用解析

    Java中的ReentrantLock使用解析

    这篇文章主要介绍了Java中的ReentrantLock使用解析,ReentrandLock即可重入锁,可重入锁解决的是重入锁定的问题,重入锁定指的是当一个线程执行逻辑时,需要两次获取锁,而该锁不可重入就会导致内部嵌套无法获取锁导致Reentrance Lockout发生,需要的朋友可以参考下
    2023-11-11
  • Java实现红黑树(平衡二叉树)的详细过程

    Java实现红黑树(平衡二叉树)的详细过程

    红黑树接近平衡的二叉树,插入,删除函数跟平衡二叉树一样,只是平衡函数不同,下面这篇文章主要给大家介绍了关于Java实现红黑树(平衡二叉树)的相关资料,需要的朋友可以参考下
    2021-10-10
  • Netty源码分析NioEventLoop线程的启动

    Netty源码分析NioEventLoop线程的启动

    这篇文章主要为大家介绍了Netty源码分析NioEventLoop线程的启动示例,有需要的朋友,可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • SpringBoot Security的自定义异常处理

    SpringBoot Security的自定义异常处理

    这篇文章主要介绍了SpringBoot Security的自定义异常处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot静态类调用Bean的两种方案(新手版)

    SpringBoot静态类调用Bean的两种方案(新手版)

    这篇文章主要介绍了两种解决Spring Boot中静态类调用Bean问题的方法:方案一使用SpringContextHolder(中间人模式),方案二使用@PostConstruct注解(入住模式),根据具体需求选择合适的方案,需要的朋友可以参考下
    2025-12-12
  • SpringBoot跨域Access-Control-Allow-Origin实现解析

    SpringBoot跨域Access-Control-Allow-Origin实现解析

    这篇文章主要介绍了SpringBoot跨域Access-Control-Allow-Origin实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 浅谈spring的重试机制无效@Retryable@EnableRetry

    浅谈spring的重试机制无效@Retryable@EnableRetry

    这篇文章主要介绍了浅谈spring的重试机制无效@Retryable@EnableRetry,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论