Java实现手动对list集合进行分页

本文介绍如何在Java中不使用库或框架,手工对List集合进行分页操作。通过创建分页类,实现了对数据的分页展示,详细步骤包括分页类的设计、数据切分等关键步骤。
摘要由CSDN通过智能技术生成

一、创建分页类

 

package com.huakunwk.club.util;

/**
 * @author Lix@jchvip.com
 * @date 2018/6/6 14:53
 */
public class Paging {
    private Integer totalNum;//总条数
    private Integer totalPage;//总页数
    private Integer pageSize;//每页条数
    private Integer pageIndex;//当前页码
    private Integer queryIndex;//当前页从第几条开始查

    public static Paging pagination(Integer totalNum,Integer pageSize,Integer pageIndex){
        Paging page = new Paging();
        page.setTotalNum(totalNum);
        Integer totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : totalNum / pageSize + 1;
        page.setTotalPage(totalPage);
        page.setPageIndex(pageIndex + 1);
        page.setPageSize(pageSize);
        page.setQueryIndex(pageSize * pageIndex);
        return page;
    }

    public Integer getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(Integer totalNum) {
        this.totalNum 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Java中的subMap方法手动实现Map集合分页。具体步骤如下: 1. 首先,需要获取Map集合中的所有键,可以通过keySet方法获取。 2. 然后,对键进行排序,可以通过Collections.sort方法实现。排序后的键列表就是分页时需要使用的索引。 3. 接着,根据页码和每页显示的数量,计算出需要显示的键的范围。例如,如果要显示第2页,每页显示10个元素,则需要显示键列表中索引为10~19的元素。 4. 最后,根据计算出的键的范围,使用subMap方法获取对应的子Map,即可得到需要显示的元素。 下面是一个简单的示例代码: ```java Map<String, Integer> map = new HashMap<>(); // 添加元素到map中 ... int pageNum = 2; // 第2页 int pageSize = 10; // 每页显示10个元素 List<String> keys = new ArrayList<>(map.keySet()); Collections.sort(keys); // 对键进行排序 int startIndex = (pageNum - 1) * pageSize; // 计算起始索引 int endIndex = Math.min(startIndex + pageSize, keys.size()); // 计算结束索引 List<String> subKeys = keys.subList(startIndex, endIndex); // 获取子列表 Map<String, Integer> subMap = new LinkedHashMap<>(); for (String key : subKeys) { subMap.put(key, map.get(key)); } // 输出分页结果 System.out.println(subMap); ``` 在上面的示例代码中,使用了LinkedHashMap来保存子Map,这是因为LinkedHashMap保持了元素的插入顺序,可以保证分页结果的顺序与原始Map中的顺序一致。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值