object 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()
}
Kotlin 开发者社区
国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。
Kotlin 开发者社区 QRCode.jpg
网友评论