`

Array,List分页代码

 
阅读更多
package com.snail.util;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
/**
 * 分页工具类
 * @author penghuaiyi
 * @date 2013-08-30
 */
public class PageUtils {

	/**
	 * 数组分页
	 * @param source 源数组
	 * @param pageSize 每页大小
	 * @return 分页后的数组列表
	 */
    public static <T> List<T[]> pageArray(T[] source, int pageSize){
    	int totalLength = source.length; //总的数据条数
    	int totalPage = totalLength%pageSize==0 ? totalLength/pageSize : totalLength/pageSize+1; //总的页数
    	List<T[]> list = new ArrayList<T[]>(totalPage);
    	for(int page=1; page<=totalPage; page++){
    		int startIndex = (page-1)*pageSize;
    		int endIndex = startIndex+pageSize-1;
    		if(endIndex>=totalLength){
    			endIndex = totalLength-1;
    		}
    		int len = endIndex-startIndex+1;
    		T[] pageData = (T[]) Array.newInstance(source.getClass().getComponentType(), len);
    		System.arraycopy(source, startIndex, pageData, 0, len);
    		list.add(pageData);
    	}
    	return list;
    }
    
    /**
	 * List分页
	 * @param source 源list
	 * @param pageSize 每页大小
	 * @return 分页后的数据列表
	 */
    public static <T> List<List<T>> pageList(List<T> source, int pageSize){
    	int totalLength = source.size(); //总的数据条数
    	int totalPage = totalLength%pageSize==0 ? totalLength/pageSize : totalLength/pageSize+1; //总的页数
    	List<List<T>> list = new ArrayList<List<T>>(totalPage);
    	for(int page=1; page<=totalPage; page++){
    		int startIndex = (page-1)*pageSize;
    		int endIndex = startIndex+pageSize-1;
    		if(endIndex>=totalLength){
    			endIndex = totalLength-1;
    		}
    		List<T> pageData = source.subList(startIndex, endIndex+1);
    		list.add(pageData);
    	}
    	return list;
    }
    

    public static void testPageArray(){
    	Integer[] source = new Integer[100];
		for(int i=0;i<100;i++){
			source[i] = i;
		}
		
		List<Integer[]> rtn = pageArray(source,15);
		for(Integer[] value : rtn){
			for(Integer in : value){
				System.out.print(in+" ");
			}
			System.out.println();
		}
    }
    
    public static void testPageList(){
    	List<Integer> source = new ArrayList<Integer>(100);
		for(int i=0;i<100;i++){
			source.add(i);
		}
		
		List<List<Integer>> rtn = pageList(source,15);
		for(List<Integer> value : rtn){
			for(Integer in : value){
				System.out.print(in+" ");
			}
			System.out.println();
		}
    }
    
    
    
    
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		testPageArray();
		System.out.println("*******************");
		testPageList();

	}

}

 

分享到:
评论

相关推荐

    ThinkPHP5分页paginate代码实例解析

    $list = db('user')-&gt;paginate(10,false,['query'=&gt;array('id' =&gt; $id)]); 其它参数 // 总数据 $this-&gt;assign(‘total’,$list-&gt;total()); // 总页数 $total= ceil($list-&gt;total() / 10); $this-&gt;assign(...

    jquery实现数组array、集合list、json类型的分页支持多个分页

    jquery实现数组array、集合list、json类型的分页 其他可以查看代码,都有注释,调用也简单(当然,功能也简单 可以自己插入函数扩展一下) 支持多个分页

    jquery实现数组array、集合list、json类型的分页

    jquery实现数组array、集合list、json类型的分页 其他可以查看代码,都有注释,调用也简单(当然,功能也简单 可以自己插入函数扩展一下)

    ThinkPhp3.1.3仿百度分页类

    ThinkPhp仿百度分页类,在ThinkPhp3.1.3下测试通过 Author: 泡泡堂 &lt;46445280@qq.com&gt; ... $arr = $m-&gt;where($map)-&gt;limit($page-&gt;firstRow.','.$page-&gt;listRows)-&gt;select(); echo $show."&lt;hr&gt;"; print_r($arr);

    PHP分页类,样式可以自定义、支持javascript分页、各种框架使用均可配置

    PHP分页类,样式可以自定义、支持javascript分页、各种框架使用均可配置 $pageNo = isset($_REQUEST['pageNo']) ?... -&gt;setItemConfig(array('list'=&gt;array('size'=&gt;5))); echo $paginator-&gt;createString();

    js 分页全选或反选标识实现代码

    3:分页之后(全选或不选)状态标识依然存在 代码如下: /* *****&gt;****&gt;tr单选事件 ————————————————————————————*/ $(“#ajaxshowmdqhList tbody tr”).live(“click”,function(){ sx_...

    MybatisPageHelper分页插件

    List&lt;ComArea&gt; lis = comAreaMapper.selectByExample(example); Page&lt;ComArea&gt; page = (Page) lis; PageInfo pageInfo = new PageInfo(lis); ComArea entity1 = lis.get(0); ComArea entity2 = (ComArea) ...

    list:列表展示插件,可实现分页、简单的搜索和排序

    ##列表展示插件 list.js 列表展示插件,可实现分页、简单的搜索和排序。 插件写得比较简洁,使用时需要较多配置。 ###Basic 基本 依赖:jquery, handlebars, bootstrap-pager ###Options 参数 #####data array 展示...

    mongoose-pages:用于Mongoose ODM的分页插件

    猫鼬页面 适用于Mongoose ODM的开发人员友好的分页插件。安装 $ npm install mongoose-pages用法猫鼬Pages通过两... list of documents totalPages: Number; total number of pages, as per the `docsPerPage` value pr

    springmybatis

    mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...

    机智内容管理系统2.0

    参数: "num"=&gt;"20" 说明:当前页显示条数,一定和分页代码一致. 参数: "title_sub"=&gt;"40" 说明: 文章标题默认截取数,也可以指定数 参数: "intro_sub"=&gt;"200" 说明: 文章摘要默认截取数,也可以指定数 参数: "ordersort...

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3 ... 12.2 List 368  实例208 增加所需的元素 368 ...

    svelte-virtualized

    使用此软件包可基于分页延迟加载列表。 它通过呈现给定的no来提高大型列表的性能。 一次的行数。 安装 :wrench: yarn add svelte-scroll-infinite-list 或者 npm install svelte-scroll-infinite-list 用法 :...

    java面试宝典

    120、Array in JavaScript 29 121、jsp有哪些内置对象?作用分别是什么? 31 122、jsp有哪些动作?作用分别是什么? 31 123、JSP中动态INCLUDE与静态INCLUDE的区别? 31 124、两种跳转方式分别是什么?有什么区别? 31 125...

    grn_mini:用作 KVS 的 Groonga(Rroonga) 包装器

    自动生成具有数据类型的列明确指定列类型高级搜索查询坚持种类分组(向下钻取) 片段分页多表协作安装 $ gem install grn_mini当您安装 Rroonga 失败时,请参考 -&gt;基本用法创建一个名为“test.db”的数据库。...

    ReactiveCache:适用于Android和Java的React式缓存,采用React式链

    自定义Types , List , Map和Array自动反序列化序列化。 分页用于在特定时间间隔内使数据过期的生存期系统。 数据加密。 可自定义的磁盘缓存大小限制。 在各版本之间迁移以逐出Type数据。 完整的集,可使用List...

    C# 3.0完全自学宝典 (F)

    UseArray 演示数组定义和使用 UseFuc 演示函数的调用 UseIf 演示If、Switch选择语句使用 UseWhile 演示while、loop、for循环语句使用 第3章(\ch03) 示例描述:学习C#面向对象开发实例。 AnimalPerson 演示C#...

    will_paginate-bootstrap4:钩入will_paginate以格式化html以匹配Twitter Bootstrap 4样式

    :list_classes = ['pagination'] # Array of classes :aria_label = 'Page Navigation' # The aria label to use in the Nav tag :previous_label = '&laquo;' # Previous page label :next_label = '&raquo;' # ...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    常用数据结构(List、Dictionary、Array)、多态、常用设计模式、反射、常用.net类库、泛型、IO流、委托事件、正则表达式、XML、反射、GC等。 2、数据库开发及ADO.Net(6天) 核心技术课程 数据库开发基础、...

Global site tag (gtag.js) - Google Analytics