当前位置:首页 > Java

JAVA如何手动分页

2026-03-23 23:25:16Java

手动分页的实现方法

在Java中实现手动分页通常涉及对数据集合进行截取,结合页码和每页大小计算起始和结束索引。以下是常见的实现方式:

使用List.subList方法

对于内存中的集合(如List),可以直接使用subList方法截取分页数据:

List<T> dataList = ... // 原始数据集合
int pageNum = 2;      // 当前页码(从1开始)
int pageSize = 10;    // 每页大小

int startIndex = (pageNum - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, dataList.size());
List<T> pageData = dataList.subList(startIndex, endIndex);

数据库查询分页

对于数据库查询,可通过SQL的LIMITOFFSET实现(MySQL/PostgreSQL):

String sql = "SELECT * FROM table_name LIMIT ? OFFSET ?";
int offset = (pageNum - 1) * pageSize;
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, pageSize);
stmt.setInt(2, offset);
ResultSet rs = stmt.executeQuery();

使用Stream API分页

Java 8+的Stream API也可用于内存分页:

List<T> pageData = dataList.stream()
    .skip((pageNum - 1) * pageSize)
    .limit(pageSize)
    .collect(Collectors.toList());

封装分页对象

通常需要返回包含分页信息的对象:

JAVA如何手动分页

public class PageResult<T> {
    private List<T> data;
    private int totalPages;
    private long totalElements;
    private int currentPage;
    // getters/setters
}

// 使用示例
int totalElements = dataList.size();
int totalPages = (int) Math.ceil((double) totalElements / pageSize);
PageResult<T> result = new PageResult<>(pageData, totalPages, totalElements, pageNum);

注意事项

  • 页码通常从1开始计算,但编程中索引从0开始
  • 需处理超出范围的情况(如pageNum过大时返回空列表)
  • 数据库分页在大数据量时可能需优化(如使用游标代替OFFSET)

标签: 分页JAVA
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

vue page 实现分页

vue page 实现分页

实现 Vue 分页功能的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用 el-pagination 组件实现分页功能。 <template>…

用vue实现分页

用vue实现分页

使用Vue实现分页功能 分页是Web应用中常见的功能,可以通过Vue结合计算属性和事件处理实现。以下是实现分页的核心步骤: 数据准备 定义数据模型,包括当前页码、每页显示数量和总数据列表: dat…

vue实现接口分页

vue实现接口分页

Vue 实现接口分页的方法 在 Vue 中实现接口分页通常需要结合后端 API 和前端分页组件。以下是常见的实现方式: 使用 Element UI 的分页组件 安装 Element UI 后,可以使…

vue实现新闻分页

vue实现新闻分页

Vue 实现新闻分页的方法 数据准备与分页逻辑 在 Vue 中实现新闻分页需要准备新闻数据列表和分页参数。通常使用 data 属性存储当前页码和每页显示的新闻数量。 data() { retur…

vue怎么实现分页

vue怎么实现分页

Vue 分页实现方法 基于 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm inst…