java如何对list分页呢?

欣喜 Java经验 发布时间:2025-02-24 16:25:34 阅读数:13702 1
下文笔者讲述java代码将list分页的方法分享,如下所示

list分页的实现思路

方式1:
   将list转换为stream
      借助stream的skip和limit方法即可实现转换
	  
方式2:
    使用for循环遍历list,然后对其进行数据获取
例:
List分页的示例
  
List<T> page=list.stream()
	.skip((pageNo-1)*pageSize).limit(pageSize)
	.toList();
例2:手动拆分list
 
一个包含100个元素列表
 每页显示10个元素
 
import java.util.ArrayList;
import java.util.List;

public class PaginationExample {

    public static void main(String[] args) {
        // 创建一个包含100个元素的列表
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 100; i++) {
            list.add(i);
        }

        // 分页参数
        int pageNumber = 3; // 页码,从1开始
        int pageSize = 10;  // 每页大小

        // 获取指定页码的分页结果
        List<Integer> paginatedList = paginate(list, pageNumber, pageSize);

        // 打印分页结果
        System.out.println("Page " + pageNumber + ": " + paginatedList);
    }

    /**
     * 分页方法
     *
     * @param list       原始列表
     * @param pageNumber 页码(从1开始)
     * @param pageSize   每页大小
     * @return 分页后的列表
     */
    public static <T> List<T> paginate(List<T> list, int pageNumber, int pageSize) {
        if (list == null || list.isEmpty()) {
            return new ArrayList<>();
        }

        // 计算起始索引和结束索引
        int startIndex = (pageNumber - 1) * pageSize;
        int endIndex = Math.min(startIndex + pageSize, list.size());

        // 检查起始索引是否超出范围
        if (startIndex >= list.size()) {
            return new ArrayList<>();
        }

        // 截取指定范围的元素
        return list.subList(startIndex, endIndex);
    }
}

 
代码说明 
1.创建列表:
   - 使用一个循环创建一个包含100个整数的列表。

2.分页参数:
   - `pageNumber`:页码,从1开始。
   - `pageSize`:每页显示的元素数量。

3.分页方法:
   - `paginate` 方法接受原始列表、页码和每页大小作为参数。
   - 计算起始索引 `startIndex` 和结束索引 `endIndex`。
   - 使用 `subList` 方法从原始列表中截取指定范围的元素。
   - 返回分页后的列表。

注意事项
	- 页码从1开始:
	    在实际应用中,页码通常从1开始,而不是0。
	- 边界检查:
	    确保起始索引和结束索引在有效范围内,避免 `IndexOutOfBoundsException`。
	- 空列表处理:
	    如果原始列表为空或页码超出范围,返回一个空列表。
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202502/17403880698332.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者