利用java8 stream api 实现List集合分页获取工具
来源:互联网 发布:java文件上传下载原理 编辑:程序博客网 时间:2024/05/21 10:07
package com.test.paging;import java.util.Arrays;import java.util.List;/** * @author kevin.chen * Date 2017/11/9 * Time 18:05 */public class ListPagingTest { public static void main(String[] args) { List<String> list = Arrays.asList("ab", "ce", "re", "asf", "saf", "abc", "111"); PagingList<String> paging = new PagingList<>(list, 2); while (paging.hasNext()) { paging.next().forEach(System.out::println); } }}
自己利用java8 stream api 实现的List集合分页获取工具 分享给大家
package com.bestpay.account.core.common;import java.util.List;import java.util.stream.Collectors;/** * @author kevin.chen * Date 2017/11/9 * Time 18:11 * 对数据集合进分页获取 */public class PagingList<T> { /** * 总页数 */ private int totalPage = 0; /** * 当前是第几页 */ private int curPageNo = 0; /** * 每页的大小 */ private int pageSize = 0; /** * 每页默认大小 */ private static final int DEFAULT_PAGE_SIZE = 500; private List<T> pageData = null; public PagingList(List<T> pageResult, int pageSize) { this.pageSize = pageSize; this.pageData = pageResult; init(pageResult, pageSize); } public PagingList(List<T> pageResult) { this(pageResult, DEFAULT_PAGE_SIZE); } private void init(List<T> pageResult, int pageSize) { if (pageSize <= 0) { throw new IllegalArgumentException("Paging size must be greater than zero."); } if (null == pageResult) { throw new NullPointerException("Paging resource list must be not null."); } if (pageResult.size() % pageSize > 0) { this.totalPage = (pageResult.size() / pageSize) + 1; } else { this.totalPage = pageResult.size() / pageSize; } } /** * 返回当前剩余页数 * * @return */ private int getSurplusPage() { if (pageData.size() % pageSize > 0) { return (pageData.size() / pageSize) + 1; } else { return pageData.size() / pageSize; } } /** * 返回是否还有下一页数据 * * @return */ public boolean hasNext() { return pageData.size() > 0; } /** * 获取分页后,总的页数 * * @return */ public int getTotalPage() { return totalPage; } public List<T> next() { List<T> pagingData = pageData.stream().limit(pageSize).collect(Collectors.toList()); pageData = pageData.stream().skip(pageSize).collect(Collectors.toList()); return pagingData; } /** * 返回当前页数 * * @return */ public int getCurPageNo() { return totalPage - getSurplusPage(); }}
阅读全文
0 0
- 利用java8 stream api 实现List集合分页获取工具
- java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
- Java8 List stream经常用到的方法集合!
- Java8 利用Lambda处理List集合
- Java8 集合元素使用Stream Api进行分组
- Java8 Stream API介绍
- JAVA8 Stream API 入门
- JAVA8 Stream API 进阶
- java8 Stream API
- java8-02-Stream-API
- java8之Stream-API
- java8 Stream API初识
- java8 Stream API笔记
- Java8 Stream API介绍
- Java8 Stream API
- java8之Stream API
- Java8 Stream API
- Java8 Stream API使用
- jquery chosen这个插件 可以实现 拼音搜索
- Android 常用工具类
- java中的synchronized
- (一)算法--查找算法顺序查找和二分查找(递归和非递归方式)
- 编程规范
- 利用java8 stream api 实现List集合分页获取工具
- localStorage、cookie的使用总结
- TensorFlow学习记录1-一些比较好的学习资源
- Java编程题1
- 软考总结
- A Multiplication Game 博弈
- CodeForces
- Eclipse中配置Maven环境
- 书架装载机,为什么程序员就能如此轻松的写出来呢?