美文网首页
List数据内存分页

List数据内存分页

作者: Raral | 来源:发表于2022-12-20 14:23 被阅读0次

内存分页

我们常常要对List数据切分和分页,最近客户要求我们调用第三方接口拿到所有数据然后做分页返回给他 们,全量数据拿到后都是在缓存在内存中,这不像查询询数据库有语句支持,于是我们就搞了个List分页的工具类。这里分享一下我们使用的分页工具类。代码其实也是简单的,没什么难度,关键是提供给急需的朋友们。

代码工具类



public class ListSplitUtils {

    /**
     * 数组分割
     * @param batchList 被分割的数组
     * @param batchCount 分割后每个数组的长度
     * @param <T> 数组类型
     * @return 分割后的数组
     */
    public static <T> List<List<T>> split(List<T> batchList, int batchCount) {
        if (CollectionUtils.isEmpty(batchList)) {
            return Collections.emptyList();
        }

        List<List<T>> result = new ArrayList<>();
        int size = batchList.size();
        if (size <= batchCount) {
            result.add(batchList);
            return result;
        }

        int splitCount = size / batchCount;
        if (size % batchCount != 0) {
            splitCount++;
        }

        for (int i = 0; i < splitCount; i++) {
            List<T> splitList = new ArrayList<>(batchCount);
            int indexStart = i * batchCount;
            for (int j = 0; j < batchCount; j++) {
                int index = j + indexStart;
                if (index >= size) {
                    break;
                }
                T item = batchList.get(index);
                splitList.add(item);
            }
            result.add(splitList);
        }

        return result;
    }

}

使用多线程

如果每一页的数据需要做 rpc操作获取详细信息
敬请期待

相关文章

  • List集合分页工具类

    1.说明 List集合分页工具类,可以对内存中的List集合进行分页,在需要分批返回数据,或者分批插入数据等场景都...

  • List数据内存分页

    内存分页 我们常常要对List数据切分和分页,最近客户要求我们调用第三方接口拿到所有数据然后做分页返回给他 们,全...

  • iOS Realm数据持久化--List容器分页(三)

    本章讲解基于List容器的Realm数据分页,基于List容器的分页是常用的分页逻辑,就是分批把数据缓存到List...

  • Mybatis 分页方案 逻辑分页 or 物理分页

    一、什么是逻辑分页 逻辑分页:先查询所有数据到内存,再从内存截取需要数据 ,属于前台分页 二、什么是物理分页 物理...

  • MySQL - 分页

    真分页/物理分页/数据库分页 优点:不会造成内存溢出 缺点:复杂,翻页比较麻烦

  • Query查询对象的使用(重要)

    分页查询 返回多行数据 query.list() 返回多行数据 query.uniqueResult() 返回一行数据

  • Mybatis拦截器与自定义分页插件的实现

    首先Mybatis 默认是内存分页,就是将所有数据从磁盘读入到内存中后,再去分页。这样会大幅度降低应用性能,至于为...

  • MyBatis 拦截器实现分页

    内存分页:从数据库中一次性将数据读取到内存,根据页面显示的条数去内存中查询。占用了较大的内存空间,减少了与数据库的...

  • MyBatis分页和动态标签

    MyBatis分页 内存分页 MyBatis提供了RowBounds类实现内存分页功能。其原理是首先根据sql语句...

  • Mybatis四种分页方式

    Mybatis四种分页方式 1、数组分页 查询出全部数据,然后再list中截取需要的部分 如下 1-1、 m...

网友评论

      本文标题:List数据内存分页

      本文链接:https://www.haomeiwen.com/subject/yvzuqdtx.html