java 通用内存分页(List分页)
发布日期:2021-06-29 22:26:29 浏览次数:3 分类:技术文章

本文共 2301 字,大约阅读时间需要 7 分钟。

自己编写相关工具类

List分页和SQL分页在什么情况下使用?

参考URL: https://www.zhihu.com/question/62593358/answer/1126234241
Java对list进行分页,subList()方法实现分页
参考URL: https://www.cnblogs.com/loong-hon/p/10863635.html
[推荐]Java内存分页工具类
参考URL: http://www.manongjc.com/detail/14-zmdycqozrtwaylf.html

使用思路:用这个工具类,page方法,获取某个页的数据,返回给web前端,使用自己

PageVO去封装即可。

public class RAMPager
{
private List
data; private int pageSize; /** * @param data 原始数据 * @param pageSize 每页条数 */ public RAMPager(List
data, int pageSize) {
this.data = data; this.pageSize = pageSize; } /** * 获取某页数据,从第1页开始 * * @param pageNum 第几页 * @return 分页数据 */ public List
page(int pageNum) {
if (pageNum < 1) {
pageNum = 1; } int from = (pageNum - 1) * pageSize; int to = Math.min(pageNum * pageSize, data.size()); if (from > to) {
from = to; } return data.subList(from, to); } /** * 获取总页数 */ public int getPageCount() {
if (pageSize == 0) {
return 0; } return data.size() % pageSize == 0 ? (data.size() / pageSize) : (data.size() / pageSize + 1); } /** * 元素迭代器 */ public Iterator
> iterator() { return new Itr(); } private class Itr implements Iterator
> { int page = 1; Itr() { } public boolean hasNext() { return page <= getPageCount(); } public List
next() { int i = page; if (i > getPageCount()) return new ArrayList<>(); page = i + 1; return RAMPager.this.page(i); } } public static void main(String[] args) { List
list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); System.out.println("原始数据是:" + list); int pageSize = 2; System.out.println("每页大小是:" + pageSize); RAMPager
pager = new RAMPager<>(list, pageSize); System.out.println("总页数是: " + pager.getPageCount()); System.out.println("<- - - - - - - - - - - - - ->"); // 无需感知页码情况下使用 Iterator
> iterator = pager.iterator(); while (iterator.hasNext()) { List
next = iterator.next(); System.out.println("next: " + next); } System.out.println("<- - - - - - - - - - - - - ->"); // 需要指定页码情况使用,页码从第一页开始,且小于等于总页数! for (int i = 1; i <= pager.getPageCount(); i++) { List
page = pager.page(i); System.out.println("第 " + i + " 页数据是:" + page); } }}

转载地址:https://docker.blog.csdn.net/article/details/110870770 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:什么是WebAuthn、FIDO 是什么?
下一篇:JAVA语言-判断String是否包含子串

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月14日 04时41分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章