java编程技巧——java list实现分页

List集合分页处理的方法 个人总结了两种: 第一种方法是循环截取某个页面的数据: /** * 循环截取某页列表进行分页 * @param dataList 分页数据 * @param pageSize 页面大小 * @param currentPage 当前页面 */ public static List<String> page(L... 阅读详情
 
引自:http://www.blogjava.net/jzone/articles/308842.html
应用类:
package com.Gavin.tools.util;

/** *//** 
* List分页
* 实现:利用List的获取子List方法,实现对List的分页
* @author 显武
* @date 2010-1-8 16:27:31
*
*/

import java.util.ArrayList;
import java.util.List;

public class PageModel {
    private int page = 1; // 当前页

    public int totalPages = 0; // 总页数

    private int pageRecorders;// 每页5条数据

    private int totalRows = 0; // 总数据数

    private int pageStartRow = 0;// 每页的起始数

    private int pageEndRow = 0; // 每页显示数据的终止数

    private boolean hasNextPage = false; // 是否有下一页

    private boolean hasPreviousPage = false; // 是否有前一页

    private List list;

    // private Iterator it;

    public PageModel(List list, int pageRecorders) {
        init(list, pageRecorders);// 通过对象集,记录总数划分
    }
   
    /** *//**
     * 初始化list,并告之该list每页的记录数
     * @param list
     * @param pageRecorders
     */
    public void init(List list, int pageRecorders) {
        this.pageRecorders = pageRecorders;
        this.list = list;
        totalRows = list.size();
        // it = list.iterator();
        hasPreviousPage = false;
        if ((totalRows % pageRecorders) == 0) {
            totalPages = totalRows / pageRecorders;
        } else {
            totalPages = totalRows / pageRecorders + 1;
        }

        if (page >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }

        if (totalRows < pageRecorders) {
            this.pageStartRow = 0;
            this.pageEndRow = totalRows;
        } else {
            this.pageStartRow = 0;
            this.pageEndRow = pageRecorders;
        }
    }


    // 判断要不要分页
    public boolean isNext() {
        return list.size() > 5;
    }

    public void setHasPreviousPage(boolean hasPreviousPage) {
        this.hasPreviousPage = hasPreviousPage;
    }

    public String toString(int temp) {
        String str = Integer.toString(temp);
        return str;
    }

    public void description() {

        String description = "共有数据数:" + this.getTotalRows() +

        "共有页数: " + this.getTotalPages() +

        "当前页数为:" + this.getPage() +

        " 是否有前一页: " + this.isHasPreviousPage() +

        " 是否有下一页:" + this.isHasNextPage() +

        " 开始行数:" + this.getPageStartRow() +

        " 终止行数:" + this.getPageEndRow();

        System.out.println(description);
    }

    public List getNextPage() {
        page = page + 1;

        disposePage();

        System.out.println("用户凋用的是第" + page + "页");
        this.description();
        return getObjects(page);
    }

    /** *//**
     * 处理分页
     */
    private void disposePage() {

        if (page == 0) {
            page = 1;
        }

        if ((page - 1) > 0) {
            hasPreviousPage = true;
        } else {
            hasPreviousPage = false;
        }

        if (page >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
    }

    public List getPreviousPage() {

        page = page - 1;

        if ((page - 1) > 0) {
            hasPreviousPage = true;
        } else {
            hasPreviousPage = false;
        }
        if (page >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
        this.description();
        return getObjects(page);
    }

    /** *//**
     * 获取第几页的内容
     *
     * @param page
     * @return
     */
    public List getObjects(int page) {
        if (page == 0)
            this.setPage(1);
        else
            this.setPage(page);
        this.disposePage();
        if (page * pageRecorders < totalRows) {// 判断是否为最后一页
            pageEndRow = page * pageRecorders;
            pageStartRow = pageEndRow - pageRecorders;
        } else {
            pageEndRow = totalRows;
            pageStartRow = pageRecorders * (totalPages - 1);
        }

        List objects = null;
        if (!list.isEmpty()) {
            objects = list.subList(pageStartRow, pageEndRow);
        }
        //this.description();
        return objects;
    }

    public List getFistPage() {
        if (this.isNext()) {
            return list.subList(0, pageRecorders);
        } else {
            return list;
        }
    }

    public boolean isHasNextPage() {
        return hasNextPage;
    }


    public void setHasNextPage(boolean hasNextPage) {
        this.hasNextPage = hasNextPage;
    }


    public List getList() {
        return list;
    }


    public void setList(List list) {
        this.list = list;
    }


    public int getPage() {
        return page;
    }


    public void setPage(int page) {
        this.page = page;
    }


    public int getPageEndRow() {
        return pageEndRow;
    }


    public void setPageEndRow(int pageEndRow) {
        this.pageEndRow = pageEndRow;
    }


    public int getPageRecorders() {
        return pageRecorders;
    }


    public void setPageRecorders(int pageRecorders) {
        this.pageRecorders = pageRecorders;
    }


    public int getPageStartRow() {
        return pageStartRow;
    }


    public void setPageStartRow(int pageStartRow) {
        this.pageStartRow = pageStartRow;
    }


    public int getTotalPages() {
        return totalPages;
    }


    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }


    public int getTotalRows() {
        return totalRows;
    }


    public void setTotalRows(int totalRows) {
        this.totalRows = totalRows;
    }


    public boolean isHasPreviousPage() {
        return hasPreviousPage;
    }

}

测试类:
package com.Gavin.tools.util;

import java.util.ArrayList;
import java.util.List;

public class TestPagerModel {
    public static void main(String args[]) {
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");
        list.add("h");
        list.add("h");
        list.add("i");
        list.add("j");
        list.add("k");
        list.add("l");
        list.add("m");
        PageModel pm = new PageModel(list, 5);
       
        List sublist = pm.getObjects(3);
        for(int i = 0; i < sublist.size(); i++) {
            System.out.println(sublist.get(i));
        }
        System.out.println(sublist.get(0));
    }

}
别再让信号‘撞墙’了!手把手教你用嘉立创阻抗计算器搞定PCB高速线(附免费压层结构选择) 本文详细介绍了如何使用嘉立创阻抗计算器解决PCB高速线设计中的阻抗匹配问题,避免信号反射和传输损耗。通过免费压层结构选择和五步计算法,帮助工程师快速掌握USB3.0差分线等高速信号的设计技巧,提升PCB设计效率和信号质量。 阅读详情

相关推荐

FreeCAD MCP实战:用自然语言驱动AI建模,效率提升10倍

MCP(Model Context Protocol)是一种让AI模型调用外部工具和数据的协议标准,通过标准化通信层解决AI与CAD软件之间的交互难题。其原理是向AI暴露工具清单,AI根据自然语言需求自动选择工具并填充参数。在工程实践中,这一技术显著降低了CAD建模门槛,将重复性操作从手动点击转为语音指令,适用于批量零件生成、参数化设计等场景。FreeCAD作为开源CAD,凭借开放的Python API和脚本化能力,成为落地MCP的理想平台。本文基于FreeCAD MCP的实操经验,分享环境搭建、自然语言建

weixin_31188927的博客 328

Java list 分页(多种方式)

【代码】Java list 分页(多种方式)

fangzhen1111的博客 3020

MapGIS地质剖面图绘制实战:从数据准备到整饰出图

本文详细解析了MapGIS地质剖面图绘制的全流程,从数据准备到整饰出图,涵盖了等高线处理、GRD格网化、比例尺控制等关键步骤。通过实战技巧和案例分析,帮助地质工作者高效完成专业地质剖面图绘制,提升矿产勘探和工程勘察的工作效率。

weixin_28335283的博客 593

Java处理List集合数据进行分页展示

Java处理List集合数据进行分页展示

weixin_50185313的博客 3279

金智维KRPA实战:Excel自动化数据处理全流程解析

本文详细解析了金智维KRPA在Excel自动化数据处理中的全流程应用,涵盖COM接口和文件读写两种核心技术方案,以及销售报表生成、数据清洗和可视化仪表盘等实战案例。通过企业级应用的异常处理、性能优化和安全合规实践,显著提升数据处理效率和准确性,助力企业降本增效。

weixin_30329623的博客 598

DEA各种模型原理及stata代码实现

DEA各种模型原理及stata代码实现DEA各种模型原理及stata代码实现一、CCR和BCC1.原理2.效率测算stata代码3.Malmquist指数3.1M指数3.2Global-Malmquist指数4.指数计算代码与案例二、SBM模型1.原理2.stata代码实现三、方向性距离函数(DDF)1.原理2.stata代码实现3.非径向DDF模型(NDDF)3.GML指数4.指数测算四、总结 DEA各种模型原理及stata代码实现 一、CCR和BCC 1.原理 CCR模型产出导向下的效率通过求解以下规划

wonder1322的博客 4万+

2021-08-02:使用java的list实现分页方法

如何使用java的list完成分页操作 一、首先需要理解的是分页的概念:即根据前端给的pageNum,pageSize返回所需要的数据,比如第0-10条数据; 二、分页的方法:最好的是在mysql里面实现分页操作,如使用pageHelper,如直接在SQL里面完成分页操作; 三、这里分享某些不方便使用sql分页,但是可以可以使用java的list完成分页的共通方法; //subList() 方法用于截取并返回动态数组中的一部分,语法为arraylist.subList(int fromIndex, int

qq_42239680的博客 2386

AI工程实战:如何在实际工程中运用Claude Code

本文探讨了利用大型语言模型(LLM)进行复杂工程项目的结构化工作流。核心策略包括:1)规划先行,通过"探索子代理任务"主动分析代码库并澄清需求;2)定制AI行为,要求简洁输出和列出未解决问题;3)将大型任务分解为多阶段计划以管理上下文窗口限制;4)利用GitHub Issues作为外部存储实现跨会话状态持久化。这种"规划-执行"模式将AI从代码生成器升级为项目管理代理,通过与GitHub CLI等工具深度集成,实现了高效的多阶段工程协作。该方法展示了AI辅助编程向流程

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 1098

java对list集合进行分页

java对list集合进行分页

李长渊的博客 1万+

中移物联ML307C模组OPENCPU开发环境搭建全攻略

本文详细介绍了中移物联ML307C模组OPENCPU开发环境搭建的全过程。从OPENCPU模式的核心优势解析,到SDK获取、Python与scons工具安装,再到解读SDK目录结构与实战编译命令,最后提供常见问题避坑指南,帮助开发者快速构建高效的物联网应用编译环境。

weixin_29168393的博客 748

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 442

JAVA对List进行手动分页

在日常开发中,框架中使用的分页插件有时候不能够对组合List进行有效的分页,所以需要我们进行手动分页。方法缺点:不适合大量数据使用,list越大,程序响应时间越久,会造成用户体验问题。下面是优化出来的公共方法,兼容各种类型的List,复制粘贴即可使用。

weixin_44268098的博客 706

30天入门 SAP BTP 开发系列之三:了解 SAP BTP Global Account 的概念

90天之后 Trial 账号会被删除,该账号在 SAP BTP 上创建的内容会被清空,不过我们可以再创建一个新的 Tria 账号。本文简单介绍了 SAP BTP 里 Global Account 的概念,下一篇文章我会介绍 SAP BTP 控制台里和 Global Account 相关的一些操作。,创建 SAP BTP 的 Trial,在可选 Region 列表里,在两个可选项中二选一,选择了。或订阅合同时,SAP BTP 会在后台为其生成一个对应的。在企业拥抱云原生架构的过程中,SAP BTP 的。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1004

Java对list进行分页,subList()方法实现分页

修正版 /** * 自定义List分页工具 * * @author ellen * @version 1.0 * @date 2019/1/11 */ public class PageUtil { /** * 开始分页 * * @param list * @param pageNum 页码 * @param pageS...

一条吃软饭的软狗 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Redis】利用 Redis List 实现 Java 数据库分页快速查询

在大型应用中,数据库分页查询是日常开发中不可避免的需求之一。随着数据量的不断增加,传统的数据库分页方式可能会变得效率较低。为了解决这一问题,本文将介绍如何使用 Redis List 数据结构,结合 Java 编程语言,实现高效的数据库分页查询。Redis 是一款高性能的键值存储系统,而 Redis List 是其提供的一种有序、可重复的数据结构。List 具有快速的读写操作,适用于存储大量有序数据,这使其成为处理数据库分页查询的理想选择。

double222222的博客 6071

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

将List进行分页

将List进行分页前言将List进行分页控制台输出 前言 最近决定将工作中遇到的一部分问题的解决方案更新到博客中 将List进行分页 这是一个简单的将List中的数据进行分页处理截取需要得到的部分数据 import io.swagger.annotations.Api; import java.util.LinkedList; import java.util.List; /** * @A...

qq_42545382的博客 3672

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

List 集合分页实现

package com.mtx;import java.util.ArrayList;import java.util.List;/** * List分页测试 * @author Jandy * 2011-6-7 14:50:25 */public class Page { public static void main(String[] args) throws Exception

ccsu575970277的专栏 1万+

Java手工对List进行分页

Java手工对List进行分页 import cn.hutool.core.collection.CollUtil; ​ import java.util.Collections; import java.util.List; ​ /** * 自定义List分页工具 * * @author hanwl */ public class PageUtil { ​ /** * 开始分页 * * @param list * @param pageNo ...

li_tiantian的博客 848

java 对组合list进行分页

对组合list进行分页两个核心点: Math.ceil()方法向上取整确定page和limit,List.subList()分割集合根据公式实现分页。 public static List listPagae(List list,Integer page,Integer limit){ int initPage=1;//初始化分页 List resData=null; if(list==null || list.size()<=0) return list; i

qq_38650613的博客 1521

List集合的分页

把需要分页的数据,用list集合封装好,然后进行分页,分页的方法如下: package com.coolma.admin.util; import java.util.ArrayList; import java.util.List; /** * @ClassName ListPaging * @Decription List集合分页方法 * @AUTHOR dingguoxu...

qq_40948117的博客 1965

java对List进行分页

java对List进行分页

weixin_46263334的博客 1815

在java中实现list分页

ArrayList list = new ArrayList(); list.add("name"); list.add("age"); list.add(16); list.add("name1"); list.add("age1"); list.add(161); ...

墨咖 1972

java list 分页截取_java中利用List的subList方法实现对List分页(简单易学)

以下是介绍利用list的sublist方法实现对list分页,废话不多说了,直接看代码把/** *//*** list分页* 实现:利用list的获取子list方法,实现对list的分页* @author 显武* @date 2010-1-8 16:27:31**/import java.util.arraylist;import java.util.list;public class pagem...

weixin_35068077的博客 594

java对List分页

List分页: /** * list分页 * * @author cfx * @date 2020-5-21 10:17:37 */ public class PageListUtil { /** * 开始分页 * * @param list * @param pageNum 页码 * @param pageSize 每页多少条数据 * @return */ public static List startPa

唆了蜜. 180

java.util.List接口的方法subList()进行分页

java.util.List中有一个subList方法,用来返回一个list的一部分的视图。 List subList(int fromIndex, int toIndex);它返回原来list的从[fromIndex, toIndex)之间这一部分的视图,之所以说是视图,是因为实际上,返回的list是靠原来的list支持的。返回一个以fromIndex为起始索引(包含),以toInde

lululove19870526的专栏 2万+
上一篇: 关于Dreamweaver中如何使用CSS
下一篇: Struts 2.1 Tags
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值