Kotlin 实现内存分页完整源代码
时间:2022-06-24
本文章向大家介绍Kotlin 实现内存分页完整源代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
class PageHelper {
/**
* 对一个列表进行分页
* @param list 列表
* @param currentPage 当前页,从1开始
* @param pageSize 每页数量
*/
fun <T> page(list: MutableList<T>, currentPage: Int, pageSize: Int): Page<T> {
val page = Page<T>()
var data: MutableList<T> = mutableListOf()
// 手动分页
val totalCount = list.size
val totalPage = if ((totalCount % pageSize) > 0) {
(totalCount / pageSize + 1)
} else {
(totalCount / pageSize)
}
// 返回当前页数据封装
if (totalCount > pageSize) {
// 多页
var i = (currentPage - 1) * pageSize
while (true) {
if (currentPage * pageSize > i) {
if (i < totalCount) {
data.add(list[i])
i++
} else {
break
}
} else {
break
}
}
} else {
data = list
}
// 每页大小
page.pageSize = pageSize
// 总页数
page.totalPage = totalPage
// 总数
page.totalCount = totalCount
// 当前页
page.currentPage = currentPage
// 当前页的数据
page.data = data
return page
}
}
class Page<T> {
var currentPage: Int = 1
var pageSize: Int = 10
var totalPage: Int = 10
var totalCount: Int = 10
var data: MutableList<T> = mutableListOf()
}
- 厚土Go学习笔记 | 14. switch 的条件写的有点灵活,不过风格还是go的一贯风格
- Go语言·我的性能我做主
- 47. 访问MySql数据库实现增删改查 | 厚土Go学习笔记
- system表空间不足的问题分析(二) (r8笔记第5天)
- golang基于redis lua封装的优先级去重队列
- python基础知识——内置数据结构(元组)
- python基础知识——控制语句
- python基础知识——基本语法
- 11g主库归档自动删除的小问题分析 (r8笔记第1天)
- JavaWeb02-CSS,JS(Java真正的全栈开发)
- 数据处理——One-Hot Encoding
- JavaWeb20-文件上传;下载(Java真正的全栈开发)
- 转--每周一个GoLang设计模式之组合模式
- 简单易学的机器学习算法——Softmax Regression
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [不定时一题]Leetcode两数之和
- 深入浅出mongodb(一)
- 深入浅出mongodb(二)
- 算法——快速排序
- 算法——二分查找算法
- 第一篇——Ubuntu 安装 Elasticsearch
- Ubuntu安装Redis(手动编译)
- 第五节:Activiti6.0——流程定义相关API
- 第四节:Activiti6.0——使用zip、bpmn代码生成流程图的资源部署以及资源的查询
- 第三节:Activiti6.0——Query的API使用
- 第二节:Activiti6.0配置文件的读取
- SpringMvc配置文件上传
- 使用web.xml配置SpringMvc(使用Java加载配置)
- SpringMVC配置字符过滤器的两种方式
- SpringMvc使用Json(Java配置方式)