Java【代码分享 03】未分页数据根据参数进行后期分页(粘贴可用)

简介: Java【代码分享 03】未分页数据根据参数进行后期分页(粘贴可用)

1.需求说明

某些时候一些常用的数据比如字典、元数据等在项目启动时已经全量加载到内存了,但是页面展示时要进行分页,这个时候有的前端 table 组件有分页功能,没有分页功能的就要后端进行处理了。

2.代码实现

/**
     * 未分页数据根据参数进行分页
     *
     * @param rows     未分页的数据记录
     * @param curPage  页码(从1开始)
     * @param pageSize 每页记录数据
     * @return 当前页码的记录数据
     */
    public List<?> rowsToPageRows(List<?> rows, int curPage, int pageSize) {
        int totalSize = rows.size();
        int totalPage = ((Double) Math.ceil(totalSize * 1.0 / pageSize)).intValue();
        // 当前页大于总页数
        if (curPage > totalPage) {
            return null;
        }
        // 计算的 toIndex 大于总记录数则取总条数
        int toIndex = pageSize * curPage;
        if (toIndex > totalSize) {
            toIndex = totalSize;
        }
        return rows.subList(pageSize * (curPage - 1), toIndex);
    }

3.实际使用

public static void main(String[] args) {
        String stringWithComma = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22";
        List<String> strList = CollectionUtil.toList(stringWithComma.split(","));
        List<?> pageRows = rowsToPageRows(strList, 2, 5);
        assert pageRows != null;
        pageRows.forEach(System.out::println);
    }
    // 结果
    6
  7
  8
  9
  10
目录
相关文章
|
6天前
|
安全 Java 大数据
|
1天前
|
Java Spring
Java 效率编码 必备插件 Lombok 让代码更优雅
该内容是一个关于Lombok插件的教程摘要:介绍了Lombok用于减少Java开发中的模板代码,提升效率;讲解了如何在IntelliJ IDEA中安装Lombok插件,以及在pom.xml中添加依赖;并提到了@Data注解能自动生成getter/setter、equals、hashCode和toString方法,@Slf4j注解自动处理日志,@Builder用于构建对象,以及@AllArgsConstructor和@NoArgsConstructor注解生成构造函数。还鼓励探索更多Lombok的注解用法。
|
1天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
1天前
|
NoSQL Java API
java一行代码实现RESTFul接口
Spring Data REST是构建在Spring Data之上的库,可自动将repository转换为REST服务,支持JPA、MongoDB、Neo4j、GemFire和Cassandra。无需手动创建Service和Controller层。要开始,需配置JPA数据源,创建实体类和Repository接口。快速实现REST接口,只需引入spring-boot-starter-data-rest Maven依赖,并在Repository接口上添加@RepositoryRestResource注解。
|
2天前
|
安全 Java 网络安全
深入理解Java异常处理网络安全与信息安全:保护数据的关键策略
【4月更文挑战第29天】本文将深入探讨Java中的异常处理机制,包括异常的概念、分类、捕获和处理等方面。通过详细的解析和实例演示,帮助读者更好地理解Java异常处理的原理和应用。 【4月更文挑战第29天】在数字化时代,数据成为最宝贵的资产之一。随着网络攻击的日益猖獗,了解并实施有效的网络安全和信息保护措施变得至关重要。本文将深入探讨网络安全漏洞的概念、加密技术的重要性以及提升个人和企业的安全意识的必要性。我们将分析当前的安全挑战,并提供一系列实用的防护策略,旨在帮助读者构建一个更加安全的数字环境。
|
2天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
4天前
|
Java 编译器 开发者
【JAVA】为什么代码会重排序
【JAVA】为什么代码会重排序
|
5天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
7 1
|
5天前
|
存储 自然语言处理 Java
【JAVA面试题】什么是代码单元?什么是码点?
【JAVA面试题】什么是代码单元?什么是码点?
|
6天前
|
SQL Java 数据库
java代码中调用dao层查询接口,代码没有返回数据,打印出的sql查出了数据
java代码中调用dao层查询接口,代码没有返回数据,打印出的sql查出了数据
12 1