Kotlin 实现内存分页完整源代码
2023-09-14 09:07:21 时间
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++
相关文章
- kotlin与java的区别[通俗易懂]
- kotlin 使用viewStub
- kotlin基本语法
- 【Kotlin】Kotlin 语言基础 ( 环境安装 | 变量 | 简单使用 | 函数 | 异常 | 递归 )
- 【Kotlin】IntelliJ IDEA 创建 Kotlin 项目
- 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )
- 【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )
- 【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
- 【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. ) 2
- 【Kotlin 协程】Channel 通道 ④ ( Channel 通道的热数据流属性 | Channel 通道关闭过程 | Channel 通道关闭代码示例 )
- 【Kotlin】数字类型 ( 安全转换函数 | 浮点型转整型 )
- 【Kotlin】集合操作 ① ( List 创建与元素获取 | 安全获取集合元素 | getOrElse | getOrNull )
- Kotlin新增协程、类型别名特性,提升了对JavaScript的支持详解手机开发
- Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发
- 在没有 Kotlin 的世界与 Android 共舞