java手工分页工具类

编程入门 行业动态 更新时间:2024-10-28 03:33:29

java手工<a href=https://www.elefans.com/category/jswz/34/1769545.html style=分页工具类"/>

java手工分页工具类

手工分页

手工分页用处:当数据使用mybatisPlus分页查询后,需要再次过滤掉筛选数据时,返回的总数失效,此时可以使用手工分页

kotlin手工分页工具类
@Component
class ManualPageUtils {/*** 封装手动分页* @param list 数据集合* @param start 起始页* @param length 每页尺寸*/fun setPage(list: List<*>, start: Long, length: Long): Map<String, Any?> {val result: MutableMap<String, Any?> = LinkedHashMap(8)val totalCount = list.size// 分页var pageNum = totalCount / lengthval surplus = totalCount % lengthif (surplus > 0) {pageNum += 1}result["total"] = totalCountresult["pages"] = pageNumresult["current"] = startresult["size"] = lengthvar pageResult: List<T> = arrayListOf()if (totalCount != 0) {pageResult = getPageSizeDataForRelations(list, length, start) as List<T>}result["records"] = pageResultreturn result}/*** 手动分页类* @param datas* @param pageSize* @param pageNo* @param <T>* @return</T> */private fun <T> getPageSizeDataForRelations(datas: List<T>, pageSize: Long, pageNo: Long): List<T>? {val startNum = (pageNo - 1) * pageSize + 1if (startNum > datas.size) {return null}val res: MutableList<T> = arrayListOf()val rum = datas.size - startNumif (rum < 0) {return null}if (rum == 0L) {val index = datas.size - 1res.add(datas[index])return res}return if (rum / pageSize >= 1) {for (i in startNum until startNum + pageSize) {res.add(datas[(i - 1).toInt()])}res} else if (rum / pageSize == 0L && rum > 0) {for (j in startNum..datas.size) {res.add(datas[(j - 1).toInt()])}res} else {null}}
}

参考链接:手工分页

更多推荐

java手工分页工具类

本文发布于:2024-02-11 23:36:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684321.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分页   手工   工具   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!