依据记录总数和每页大小取页数(转)

依据记录总数和每页大小取页数
例如:总记录数为totalrow,每页显示数为pagesize,现在要求总页数totalpage
1 常用方法:整除,判断余数,余数大于0,整除结果加1。

if(totalrow%pagesize==0)
   totalpage=totalrow/pagesize;
else
   totalpage=totalrow/pagesize+1;

 这种计算方法,会导致程序先取余数,再比较是否有余数,再进行整除操作,然后再进行相加操作
2 今天无意间发现还有另外一种计算方式(以前没怎么多想)

totalpage=(totalrow+(pagesize-1))/pagesize

由于余数最小为1,那么先加上最大的余数(pagesize-1)后,只要totalrow/pagesize余数不为0,(totalpage+(pagesize-1))/pagesize的结果一定会比totalrow/pagesize大1;否则结果相等;此计算公式结果和方法1中结果一致,但是写法简单,无需bool判断,而且整  除或者取余数操作只进行了一步,相对来讲效率有所提升,效率比较代码

long t1=System.currentTimeMillis();
    for(int i=0;i<10000;i++){
        int totalrow=(int)(Math.random()*10000000.00);
        int pagesize=50;
        if(totalrow%pagesize==0){
            System.out.println(totalrow/pagesize);
        }else{
            System.out.println(totalrow/pagesize+1);
        }
    }

    long t2=System.currentTimeMillis();

    for(int i=0;i<10000;i++){
        int totalrow=(int)(Math.random()*10000000.00);
        int pagesize=50;
        System.out.println((totalrow+(pagesize-1))/pagesize);
    }

    long t3=System.currentTimeMillis();

    System.out.println("时间间隔:方法一耗时["+(t2-t1)+"]ms\t方法二耗时["+(t3-t2)+"]ms");

连续执行4次,执行结果:
时间间隔:方法一耗时[277]ms 方法二耗时[223]ms
时间间隔:方法一耗时[281]ms 方法二耗时[256]ms
时间间隔:方法一耗时[335]ms 方法二耗时[248]ms
时间间隔:方法一耗时[281]ms 方法二耗时[215]ms

转自https://blog.csdn.net/lansetiankong12/article/details/51131976

原文地址:https://www.cnblogs.com/shenyixin/p/9407269.html

时间: 2025-01-10 08:42:25

依据记录总数和每页大小取页数(转)的相关文章

SQL0286N 找不到页大小至少为 &quot;8192&quot;、许可使用授权标识 &quot;db2inst&quot; 的缺省表空间。

在 SQL 处理期间,它返回: SQL0286N  找不到页大小至少为 "8192".许可使用授权标识 "db2inst" 的缺省表空间. 顾名思义,DB2默认的页大小是4K,这样的表的字段太长,接近8K.一条记录不能跨页存储. 所以我们需要创建一个页长为8K的表空间. 首先,创建8K的缓冲池: create bufferpool ibmdefault8k IMMEDIATE  SIZE 5000 PAGESIZE 8 K ; 然后,使用该缓冲池创建一个表空间 CR

MySQL高效获取记录总数

通常mysql获取查询记录总数我们使用如下语句: SELECT COUNT(*) FROM users WHERE k='avs';  或:SELECT id FROM goods WHERE k='avs' LIMIT 10; 但是记录总数总是需要单独的语句来查询,例如在分页查询程序中就有这样的问题,其实mysql可以在一次查询中获取记录和总数的,这就是要使用SQL_CALC_FOUND_ROWS参数,使用方法如下: SELECT SQL_CALC_FOUND_ROWS goods WHERE

sqlplus中设定行大小、页大小、字符列格式、数字列格式、清屏

        sqlplus虽然是DBA们最为经常使用的Oracle客户端工具,但是它在输出结果格式化上不是很好,如折行.分页不好等,所以一般启动sqlplus后多少都要做些设置,如linesize.pagesize等. 常用命令 设置linesize.pagesize. sqlplus中设定行大小    SQL> set linesize 32767 sqlplus中设定页大小    SQL> set pagesize 50000 设置列格式 sqlplus中设定字符列格式    SQL&

ObjectStore onFetch方法获取记录总数

转自:http://blog.csdn.net/earthhour/article/details/38686029 ObjectStore onFetch方法获取记录总数 require(['dojo/when']); var json = new JsonRest({target: url}); store = new ObjectStore({objectStore: json}); store.onFetch = function(results){ // 方法一: results.th

更改Innodb 数据页大小优化MySQL

更改Innodb 数据页大小优化MySQL http://www.mysqlsupport.cn/change_innodb_page_size/ 更改Innodb 数据页大小优化MySQL 2009年12月13日 Posted by wubx 作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.         我们知道Innodb的数据页是16K,而且是一个硬性

UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.title() 获取元素文本:driver.find_XX().text 获取元素标签:driver.find_XX().tag_name 获取元素的其他属性的值:driver.find_XX().get_attribute("class") 获取class属性的值 获取文本框输入的值:drive

Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转

下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度进行内容旋转. 使用工具:Free Spire.PDF of Java (免费版) 关于jar文件引用: 步骤1:步骤1:在Java程序中新建一个文件夹可命名为Lib.并将产品包中的2个jar文件复制到新建的文件夹下. 步骤2:复制文件后,添加到引用类库:选中这两个jar文件,点击鼠标右键,选择"Buil

晶振在电路设计时关于负载电容CL大小取值特别需要注意什么?

在无源晶体的设计中,经常遇到负载电容CL的大小取值.晶振设计与精度的提高.KHz无源晶振的停止.音叉晶体谐振器的精度漂移以及精度和无源晶振在高温下的精度是否等于低温的精度烦忧的问题等. 无源晶体振荡器(包括KHz和MHz)是否能够直接参考规范中给出的CL值来设计?如果没有,对设计参考有什么经验价值? 答:不能直接使用,建议CL值-2PF或3PF,然后乘以2. 无源晶体振荡器(包括KHz和MHz)的负载电容CL等效于晶体的所有电容.实际测量中应注意什么? 答:注意不要用示波器探头.万用表笔等测试工

Linux内存页大小

当使用内存时, 记住一个内存页是 PAGE_SIZE 字节, 不是 4KB. 假定页大小是 4KB 并且 硬编码这个值是一个 PC 程序员常见的错误, 相反, 被支持的平台显示页大小从 4 KB 到 64 KB, 并且有时它们在相同平台上的不同的实现上不同. 相关的宏定义是 PAGE_SIZE 和 PAGE_SHIT. 后者包含将一个地址移位来获得它的页号的位数. 对于 4KB 或者更大的页这 个数当前是 12 或者更大. 宏在 <asm/page.h> 中定义; 用户空间程序可以使用 get