java内存分页工具类
来源:互联网 发布:淘宝提前收款 编辑:程序博客网 时间:2024/06/06 06:35
工作中由于有时候项目中特殊业务需求,需要使用到内存分页,本人根据java.util.Arrays、java.util.Collections工具类结合泛型标记写了一个简单的内存分页工具类,支持数组和List,传入全量数据和页码直接返回对应页码的数据,返回数据类型根据传入原数据类型自动转换,可自己进行封装进行上下翻页,加入缓存等操作:
public class RAMPageUtil { /** * 根据传入的数组和页码返回分页后的数组 * @param original 全量数据的数组 * @param pageNum 页码 * @param <T> * @return 返回分页后的对应页码页面的数据 */ public static <T> T[] page(T[] original, int pageNum) { return page(original,pageNum,Constants.PAGE_SIZE); } /** * 根据传入的数组和页码返回分页后的数组 * @param original 全量数据的数组 * @param pageNum 页码 * @param <T> * @return 返回分页后的对应页码页面的数据 */ public static <T> T[] page(T[] original, String pageNum) { if(StringUtil.isEmpty(pageNum) && !Pattern.compile("\\d+").matcher(pageNum).matches()) pageNum = "1"; return page(original,Integer.parseInt(pageNum)); } /** * 根据传入的数组和页码返回分页后的数组 * @param original 全量数据的数组 * @param pageNum 页码 * @param pageSize 每页数据条数 * @param <T> * @return 返回分页后的对应页码页面的数据 */ public static <T> T[] page(T[] original, int pageNum, int pageSize) { if(null==original || original.length == 0) return (T[]) Array.newInstance(original.getClass().getComponentType(), 0); if (pageNum <= 0) pageNum = 1; int from = (pageNum - 1) * pageSize; int to = pageNum * pageSize; if(to > original.length) to = original.length; if(from>=original.length || to <= from) return (T[]) Array.newInstance(original.getClass().getComponentType(), 0); return Arrays.copyOfRange(original, from, to); } /** * 根据传入的List和页码返回分页后的List * @param original 全量的List数据 * @param pageNum 页码 * @param <T> * @return 返回分页后的对应页码页面的List */ public static <T> List<T> page(List<T> original,int pageNum){ return page(original, pageNum, Constants.PAGE_SIZE); } /** * 根据传入的数组和页码返回分页后的数组 * @param original 全量数据的数组 * @param pageNum 页码 * @param <T> * @return 返回分页后的对应页码页面的数据 */ public static <T> List<T> page(List<T> original, String pageNum) { if(StringUtil.isEmpty(pageNum) && !Pattern.compile("\\d+").matcher(pageNum).matches()) pageNum = "1"; return page(original,Integer.parseInt(pageNum)); } /** * 根据传入的List和页码返回分页后的List * @param original 全量的List数据 * @param pageNum 页码 * @param pageSize 每页数据条数 * @param <T> * @return 返回分页后的对应页码页面的List */ public static <T> List<T> page(List<T> original,int pageNum,int pageSize){ List list = new ArrayList<T>(); Collections.addAll(list,page(original.toArray(),pageNum,pageSize)); return list; }}
0 0
- java内存分页工具类
- java分页工具类
- java 分页工具类
- java分页工具类
- java分页工具类
- Java 分页工具类
- java分页工具类
- java 分页类(工具类)
- java通用分页工具类
- JAVA工具类集锦1--分页类
- java的web开发分页工具类
- 分页显示数据的java工具类
- [Java代码] JDBC分页工具类
- java框架中分页问题 工具类
- java分页工具
- java分页工具封装
- Java-List分页工具
- java分页工具 pager-taglib
- position与anchorPoint理解(一)
- logback.配置
- Mozilla新特性只支持https网站
- 基于Socket的Android聊天室
- NYOJ 311 完全背包
- java内存分页工具类
- android scrollview中嵌套expandablelistview
- DSP/BIOS的点点滴滴
- 简单的Log文件示例
- suse linux 10 安装JDK 配置环境变量
- 去除开发库头文件
- C++程序设计语言练习5.12 对比string和C字符串的优劣
- 安卓studio关联依赖库问题
- 百度编辑器uediter使用简介