使用java Steam流进行逻辑分页(内存分页)
物理分页与逻辑分页
物理分页
物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果。
逻辑分页
逻辑分页依赖的是程序员编写的代码。数据库返回的不是分页结果,而是全部数据,然后再由程序员通过代码获取分页数据,常用的操作是一次性从数据库中查询出全部数据并存储到List集合中,因为List集合有序,再根据索引获取指定范围的数据。
使用 java Steam流进行逻辑分页
分页需要计算传入分页的第几页数,查询结果的总条数,总共有多少页,如下代码:
@Service
public class UserServiceImpl implements UserService {@Overridepublic ResponsePage userPage(Integer page, Integer size) {//查出user总数量List<User> userList=userReposity.findAll();//使用Stream流分页 sorted()排序,skip()跳过多少数据,limit()限制取多少条记录List<User> pageResult = userList.stream().sorted(Comparator.comparing(User::getBrith).reversed()).skip((page - 1L) * size).limit(size).collect(Collectors.toList());//记录总条数int nums = userList.size();//计算总共有多少页数int totalPage = (nums % size) > 0 ? nums / size + 1 : nums / size;return new ResponsePage(pageResult,nums,totalPage,size);}}
使用java Steam流进行逻辑分页(内存分页)相关推荐
- java Steam流的用法
java Steam流的用法1 java Steam流的用法2 项目中的流用法不太懂,沾出来大家一路分享,有清楚地可以评论留言.
- 记录Java Steam流的一些用法
基础示例类: Use.java public class User {private String userId;private String userName;private Integer age ...
- JAVA—— Steam流
一. 引言 初识Stream流的作用: 需求:按照下面的要求完成集合的创建和遍历,创建一个集合,存储多个字符串元素 通过下面代码,显然我们清晰的看到使用Stream流更为方便,而使用不同的集合遍历就 ...
- Java中Steam流的用法及使用备忘
文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...
- Java学习总结:46(内存流)
内存流 在Java中,针对内存操作提供了以下两组类: 字节内存流:ByteArrayInputStream(内存字节输入流).ByteArrayOutputStream(内存字节输出流): 字符内存流 ...
- java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误
我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...
- java流与文件——内存映射文件
[0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--内存映射文件 的相关知识: 0.2)内存映射文件的目的是: 提高访问速度, 缓冲区Bu ...
- JAVA IO流(内存流、管道流、打印流)
1.内存操作流 2.管道流 3.字节.字符转换流 4.字符的编码问题 5.打印流 6.System类对IO的支持 7.对象序列化 内存操作流 FileInputStream 和FileOutputSt ...
- java 通用内存分页(List分页)
自己编写相关工具类 List分页和SQL分页在什么情况下使用? 参考URL: https://www.zhihu.com/question/62593358/answer/1126234241 Jav ...
最新文章
- 云炬随笔20180613
- 如何无监督地获得一个句子的向量表示?
- vue element-ui级联选择器选中后下拉框自动收起
- 无序数组求第K大/第K小的数
- iOS----集成ijkplayer视频直播
- 五大主流数据库深度对比!数据库开发、管理看这篇就够了
- Spring Cloud Gray 微服务灰度中间件
- 彻底禁止电脑弹出广告的方法(以2345好压为例)
- 【GPL和LGPL】【VPlayer不开源】【其他开源的基本都仅是ffmpeg修改部分】
- 库存明细帐处理示例(包含结存数).sql
- 大盘酝酿反弹中-可以短跑几天
- oracle 11g Data Guard物理备份库
- 过来人:软件测试自学还是报班好?需要掌握哪些技能?
- 网课python程序设计答案_Python程序设计知到网课答案
- Android 按两次返回键、长按返回键退出程序
- c 语言学习大全 值得收藏的文章
- JS逆向 | 某春秋网m3u8数据解密
- Leetcode52.Maximum Subarray(贪心与分治)
- 基于CNTK实现自定义类库及使用方式(MNIST为例)【附源码】
- NLP - TextRank
热门文章
- 华为笔试题总结———个公司做团建活动,排成1个M行N列的队形...请按报数顺序输出特战队员的编号列表(N*2的二维数组)
- 过敏性鼻炎的药物治疗(摘)
- 计算机在讲台上英语,在讲台上是什么意思
- JavaScript 入门笔记(案例+截图)
- python发邮件不进垃圾箱_如何群发邮件不进入垃圾邮箱
- 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
- wps打印文章省纸省墨技巧最大限度的节约纸张资源
- idea导入外部jar包不可用
- nacos —— 控制台默认用户名密码
- Kaggle PUBG吃鸡数据集--数据分析可视化