JAVA8 分页工具
来源:互联网 发布:a卡表面格式优化 编辑:程序博客网 时间:2024/06/09 11:29
使用JAVA8的API可以实现分页,在数据量相对稳定的情况下,可以查出所有数据,配合缓存使用
import java.util.ArrayList;import java.util.List;import java.util.Optional;/** * @version 1.0 * @author levelmini * @param <T> */public class Page<T> {private int current_page;private int size;private int total_page; private int total_sum;private transient List<T> instanceList;//Gson不序列化transient字段private List<T> currentPageData;private transient Optional<List<T>> op;public Page(List<T> instanceList,int size) {this.size = size;setInstanceList(instanceList);}public int getCurrent_page() {return current_page;}public void setCurrent_page(int current_page) {this.current_page = current_page<1?1:current_page>this.total_page?this.total_page:current_page;setCurrentPageData(currentPageData());}public int getSize() {return size;}public void setSize(int size) {this.size = size;}public int getTotal_page() {return total_page;}public int getTotal_sum() {return total_sum;}public List<T> getInstanceList() {return instanceList;}public void setInstanceList(List<T> instanceList) {this.op= Optional.ofNullable(instanceList);this.instanceList = op.orElse(new ArrayList<T>());this.total_sum = this.instanceList.size();this.total_page =(int) Math.ceil(1.0*this.total_sum/this.size);}public void setCurrentPageData(List<T> currentPageData) {this.currentPageData = currentPageData;}public List<T> getCurrentPageData(){return this.currentPageData;}private List<T> currentPageData(){if(this.size==0 || this.total_page == 1){return this.instanceList;}List<T> currentPageData = new ArrayList<T>();instanceList.stream().skip((this.current_page-1)*this.size).limit(this.size).forEach(e->currentPageData.add(e));return currentPageData;}}
用法:
List<News> newsList = newsService.findAll();Page<News> page = new Page<>(newsList, size);page.setCurrent_page(current_page);return JsonUtil.toJson(page,"yyyy-MM-dd");
0 0
- JAVA8 分页工具
- 利用java8 stream api 实现List集合分页获取工具
- java8代码-时间工具类
- java8代码---Optional工具类
- Java8中的LocalDateTime工具类
- 分页工具
- 分页工具
- 分页工具
- 分页工具
- 分页工具
- java8学习第一篇:工具篇
- JAVA8 增强的工具类: Arrays
- java8增强的工具类 :Arrays
- java8增强的工具类:Arrays
- java8简单日期时间工具类
- Java8
- java8
- Java8
- android 竖直的seekbar
- 流程的发起权限如何在数据库中批量添加?
- WebStorm前端开发工具之如何将项目部署到Tomcat服务器
- linux expect详解(ssh自动登录)
- (二十二)访问者模式详解(伪动态双分派)
- JAVA8 分页工具
- PHP 与 UTF-8 的最佳实践
- 区间覆盖问题
- 抽象工厂模式
- MTK to obtain base station information
- (转)iOS及Mac开源项目和学习资料【超级全面】
- Python 和 R 数据分析/挖掘工具互查
- 关于Android的.so文件你所需要知道的
- MySQL最基本查询语法图解